Entry in std::collections::btree_set - Rust (original) (raw)
pub enum Entry<'a, T, A = Global>
where
A: Allocator + Clone,
{
Occupied(OccupiedEntry<'a, T, A>),
Vacant(VacantEntry<'a, T, A>),
}🔬This is a nightly-only experimental API. (btree_set_entry #133549)
Expand description
A view into a single entry in a set, which may either be vacant or occupied.
This enum is constructed from the entry method on BTreeSet.
§Examples
#![feature(btree_set_entry)]
use std::collections::btree_set::BTreeSet;
let mut set = BTreeSet::new();
set.extend(["a", "b", "c"]);
assert_eq!(set.len(), 3);
// Existing value (insert)
let entry = set.entry("a");
let _raw_o = entry.insert();
assert_eq!(set.len(), 3);
// Nonexistent value (insert)
set.entry("d").insert();
// Existing value (or_insert)
set.entry("b").or_insert();
// Nonexistent value (or_insert)
set.entry("e").or_insert();
println!("Our BTreeSet: {:?}", set);
assert!(set.iter().eq(&["a", "b", "c", "d", "e"]));
🔬This is a nightly-only experimental API. (btree_set_entry #133549)
An occupied entry.
§Examples
#![feature(btree_set_entry)]
use std::collections::btree_set::{Entry, BTreeSet};
let mut set = BTreeSet::from(["a", "b"]);
match set.entry("a") {
Entry::Vacant(_) => unreachable!(),
Entry::Occupied(_) => { }
}
🔬This is a nightly-only experimental API. (btree_set_entry #133549)
A vacant entry.
§Examples
#![feature(btree_set_entry)]
use std::collections::btree_set::{Entry, BTreeSet};
let mut set = BTreeSet::new();
match set.entry("a") {
Entry::Occupied(_) => unreachable!(),
Entry::Vacant(_) => { }
}
🔬This is a nightly-only experimental API. (btree_set_entry #133549)
Sets the value of the entry, and returns an OccupiedEntry.
§Examples
#![feature(btree_set_entry)]
use std::collections::BTreeSet;
let mut set = BTreeSet::new();
let entry = set.entry("horseyland").insert();
assert_eq!(entry.get(), &"horseyland");
🔬This is a nightly-only experimental API. (btree_set_entry #133549)
Ensures a value is in the entry by inserting if it was vacant.
§Examples
#![feature(btree_set_entry)]
use std::collections::BTreeSet;
let mut set = BTreeSet::new();
// nonexistent key
set.entry("poneyland").or_insert();
assert!(set.contains("poneyland"));
// existing key
set.entry("poneyland").or_insert();
assert!(set.contains("poneyland"));
assert_eq!(set.len(), 1);
🔬This is a nightly-only experimental API. (btree_set_entry #133549)
Returns a reference to this entry’s value.
§Examples
#![feature(btree_set_entry)]
use std::collections::BTreeSet;
let mut set = BTreeSet::new();
set.entry("poneyland").or_insert();
// existing key
assert_eq!(set.entry("poneyland").get(), &"poneyland");
// nonexistent key
assert_eq!(set.entry("horseland").get(), &"horseland");