Skip to content

toggle

Removes item from set if it is there, inserts it otherwise.

use helpers4::set::toggle;

Cargo feature set (enabled by default). To compile only this module:

cargo add helpers4 --no-default-features --features set

or in Cargo.toml:

[dependencies]
helpers4 = { version = "0.0.6", default-features = false, features = ["set"] }
pub fn toggle<T: Eq + Hash, S: BuildHasher>(set: &mut HashSet<T, S>, item: T) -> bool
ParameterTypeDescription
set&mut HashSet<T, S>The set to change.
itemTThe element to flip.

booltrue when item is in the set after the call (it was inserted), false when it was removed.

use helpers4::set::toggle;
use std::collections::HashSet;

let mut tags = HashSet::from(["rust"]);
assert!(toggle(&mut tags, "cli"));   // added
assert!(!toggle(&mut tags, "rust")); // removed
assert_eq!(tags, HashSet::from(["cli"]));

src/set/toggle.rs