pub struct OccupiedEntry<'a, K, V> where
    K: Key
{ /* private fields */ }
Expand description

A view into a occupied entry in a SecondaryMap. It is part of the Entry enum.

Implementations

Returns this entry’s key.

Examples
let mut sm = SlotMap::new();
let mut sec = SecondaryMap::new();

let k = sm.insert(1);
sec.insert(k, 10);
assert_eq!(sec.entry(k).unwrap().key(), k);
source

pub fn remove_entry(self) -> (K, V)

Removes the entry from the slot map and returns the key and value.

Examples
let mut sm = SlotMap::new();
let mut sec = SecondaryMap::new();

let foo = sm.insert("foo");
sec.entry(foo).unwrap().or_insert("bar");

if let Some(Entry::Occupied(o)) = sec.entry(foo) {
    assert_eq!(o.remove_entry(), (foo, "bar"));
}
assert_eq!(sec.contains_key(foo), false);

Gets a reference to the value in the entry.

Examples
let mut sm = SlotMap::new();
let mut sec = SecondaryMap::new();

let k = sm.insert(1);
sec.insert(k, 10);

if let Entry::Occupied(o) = sec.entry(k).unwrap() {
    assert_eq!(*o.get(), 10);
}

Gets a mutable reference to the value in the entry.

If you need a reference to the OccupiedEntry which may outlive the destruction of the Entry value, see into_mut.

Examples
let mut sm = SlotMap::new();
let mut sec = SecondaryMap::new();

let k = sm.insert(1);
sec.insert(k, 10);
if let Entry::Occupied(mut o) = sec.entry(k).unwrap() {
    *o.get_mut() = 20;
}
assert_eq!(sec[k], 20);

Converts the OccupiedEntry into a mutable reference to the value in the entry with a lifetime bound to the map itself.

If you need multiple references to the OccupiedEntry, see get_mut.

Examples
let mut sm = SlotMap::new();
let mut sec = SecondaryMap::new();

let k = sm.insert(0);
sec.insert(k, 0);

let r;
if let Entry::Occupied(o) = sec.entry(k).unwrap() {
    r = o.into_mut(); // v outlives the entry.
} else {
    r = sm.get_mut(k).unwrap();
}
*r = 1;
assert_eq!((sm[k], sec[k]), (0, 1));

Sets the value of the entry, and returns the entry’s old value.

Examples
let mut sm = SlotMap::new();
let mut sec = SecondaryMap::new();

let k = sm.insert(1);
sec.insert(k, 10);

if let Entry::Occupied(mut o) = sec.entry(k).unwrap() {
    let v = o.insert(20);
    assert_eq!(v, 10);
    assert_eq!(*o.get(), 20);
}

Takes the value out of the entry, and returns it.

Examples

let mut sm = SlotMap::new();
let mut sec = SecondaryMap::new();

let k = sm.insert(1);
sec.insert(k, 10);

if let Entry::Occupied(mut o) = sec.entry(k).unwrap() {
    assert_eq!(o.remove(), 10);
    assert_eq!(sec.contains_key(k), false);
}

Trait Implementations

Formats the value using the given formatter. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait. Read more

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait. Read more

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s. Read more

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s. Read more

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait. Read more

Use this to cast from one trait object type to another. Read more

Use this to upcast a trait to one of its supertraits. Read more

Use this to cast from one trait object type to another. This method is more customizable than the dyn_cast method. Here you can also specify the “source” trait from which the cast is defined. This can for example allow using casts from a supertrait of the current trait object. Read more

Use this to cast from one trait object type to another. With this method the type parameter is a config type that uniquely specifies which cast should be preformed. Read more

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Should always be Self

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more