2024-07-26 09:42:18 +00:00
<!DOCTYPE html> < html lang = "en" > < head > < meta charset = "utf-8" > < meta name = "viewport" content = "width=device-width, initial-scale=1.0" > < meta name = "generator" content = "rustdoc" > < meta name = "description" content = "A view into a single entry in a map, which may either be vacant or occupied, with any borrowed form of the map’ s key type." > < title > EntryRef in hashbrown::hash_map - Rust< / title > < script > if ( window . location . protocol !== "file:" ) document . head . insertAdjacentHTML ( "beforeend" , "SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2" . split ( "," ) . map ( f => ` <link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/ ${ f } "> ` ) . join ( "" ) ) < / script > < link rel = "stylesheet" href = "../../static.files/normalize-76eba96aa4d2e634.css" > < link rel = "stylesheet" href = "../../static.files/rustdoc-dd39b87e5fcfba68.css" > < meta name = "rustdoc-vars" data-root-path = "../../" data-static-root-path = "../../static.files/" data-current-crate = "hashbrown" data-themes = "" data-resource-suffix = "" data-rustdoc-version = "1.80.0 (051478957 2024-07-21)" data-channel = "1.80.0" data-search-js = "search-d52510db62a78183.js" data-settings-js = "settings-4313503d2e1961c2.js" > < script src = "../../static.files/storage-118b08c4c78b968e.js" > < / script > < script defer src = "sidebar-items.js" > < / script > < script defer src = "../../static.files/main-20a3ad099b048cf2.js" > < / script > < noscript > < link rel = "stylesheet" href = "../../static.files/noscript-df360f571f6edeae.css" > < / noscript > < link rel = "alternate icon" type = "image/png" href = "../../static.files/favicon-32x32-422f7d1d52889060.png" > < link rel = "icon" type = "image/svg+xml" href = "../../static.files/favicon-2c020d218678b618.svg" > < / head > < body class = "rustdoc enum" > <!-- [if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif] --> < nav class = "mobile-topbar" > < button class = "sidebar-menu-toggle" title = "show sidebar" > < / button > < / nav > < nav class = "sidebar" > < div class = "sidebar-crate" > < h2 > < a href = "../../hashbrown/index.html" > hashbrown< / a > < span class = "version" > 0.14.5< / span > < / h2 > < / div > < h2 class = "location" > < a href = "#" > EntryRef< / a > < / h2 > < div class = "sidebar-elems" > < section > < h3 > < a href = "#variants" > Variants< / a > < / h3 > < ul class = "block variant" > < li > < a href = "#variant.Occupied" > Occupied< / a > < / li > < li > < a href = "#variant.Vacant" > Vacant< / a > < / li > < / ul > < h3 > < a href = "#implementations" > Methods< / a > < / h3 > < ul class = "block method" > < li > < a href = "#method.and_modify" > and_modify< / a > < / li > < li > < a href = "#method.and_replace_entry_with" > and_replace_entry_with< / a > < / li > < li > < a href = "#method.insert" > insert< / a > < / li > < li > < a href = "#method.key" > key< / a > < / li > < li > < a href = "#method.or_default" > or_default< / a > < / li > < li > < a href = "#method.or_insert" > or_insert< / a > < / li > < li > < a href = "#method.or_insert_with" > or_insert_with< / a > < / li > < li > < a href = "#method.or_insert_with_key" > or_insert_with_key< / a > < / li > < / ul > < h3 > < a href = "#trait-implementations" > Trait Implementations< / a > < / h3 > < ul class = "block trait-implementation" > < li > < a href = "#impl-Debug-for-EntryRef%3C'_,+'_,+K,+Q,+V,+S,+A%3E" > Debug< / a > < / li > < / ul > < h3 > < a href = "#synthetic-implementations" > Auto Trait Implementations< / a > < / h3 > < ul class = "block synthetic-implementation" > < li > < a href = "#impl-UnwindSafe-for-EntryRef%3C'a,+'b,+K,+Q,+V,+S,+A%3E" > !UnwindSafe< / a > < / li > < li > < a href = "#impl-Freeze-for-EntryRef%3C'a,+'b,+K,+Q,+V,+S,+A%3E" > Freeze< / a > < / li > < li > < a href = "#impl-RefUnwindSafe-for-EntryRef%3C'a,+'b,+K,+Q,+V,+S,+A%3E" > RefUnwindSafe< / a > < / li > < li > < a href = "#impl-Send-for-EntryRef%3C'a,+'b,+K,+Q,+V,+S,+A%3E" > Send< / a > < / li > < li > < a href = "#impl-Sync-for-EntryRef%3C'a,+'b,+K,+Q,+V,+S,+A%3E" > Sync< / a > < / li > < li > < a href = "#impl-Unpin-for-EntryRef%3C'a,+'b,+K,+Q,+V,+S,+A%3E" > Unpin< / a > < / li > < / ul > < h3 > < a href = "#blanket-implementations" > Blanket Implementations< / a > < / h3 > < ul class = "block blanket-implementation" > < li > < a href = "#impl-Any-for-T" > Any< / a > < / li > < li > < a href = "#impl-Borrow%3CT%3E-for-T" > Borrow< T> < / a > < / li > < li > < a href = "#impl-BorrowMut%3CT%3E-for-T" > BorrowMut< T> < / a >
2024-03-11 08:39:13 +00:00
A: Allocator,< / div > {
Occupied(< a class = "struct" href = "struct.OccupiedEntryRef.html" title = "struct hashbrown::hash_map::OccupiedEntryRef" > OccupiedEntryRef< / a > < 'a, 'b, K, Q, V, S, A> ),
Vacant(< a class = "struct" href = "struct.VacantEntryRef.html" title = "struct hashbrown::hash_map::VacantEntryRef" > VacantEntryRef< / a > < 'a, 'b, K, Q, V, S, A> ),
}< / code > < / pre > < details class = "toggle top-doc" open > < summary class = "hideme" > < span > Expand description< / span > < / summary > < div class = "docblock" > < p > A view into a single entry in a map, which may either be vacant or occupied,
with any borrowed form of the map’ s key type.< / p >
< p > This < code > enum< / code > is constructed from the < a href = "struct.HashMap.html#method.entry_ref" > < code > entry_ref< / code > < / a > method on < a href = "struct.HashMap.html" > < code > HashMap< / code > < / a > .< / p >
< p > < a href = "https://doc.rust-lang.org/std/hash/trait.Hash.html" > < code > Hash< / code > < / a > and < a href = "https://doc.rust-lang.org/std/cmp/trait.Eq.html" > < code > Eq< / code > < / a > on the borrowed form of the map’ s key type < em > must< / em > match those
for the key type. It also require that key may be constructed from the borrowed
form through the < a href = "https://doc.rust-lang.org/std/convert/trait.From.html" > < code > From< / code > < / a > trait.< / p >
2024-03-27 11:12:16 +00:00
< h2 id = "examples" > < a class = "doc-anchor" href = "#examples" > §< / a > Examples< / h2 >
2024-03-11 08:39:13 +00:00
< div class = "example-wrap" > < pre class = "rust rust-example-rendered" > < code > < span class = "kw" > use < / span > hashbrown::hash_map::{EntryRef, HashMap, OccupiedEntryRef};
< span class = "kw" > let < / span > < span class = "kw-2" > mut < / span > map = HashMap::new();
map.extend([(< span class = "string" > "a"< / span > .to_owned(), < span class = "number" > 10< / span > ), (< span class = "string" > "b"< / span > .into(), < span class = "number" > 20< / span > ), (< span class = "string" > "c"< / span > .into(), < span class = "number" > 30< / span > )]);
< span class = "macro" > assert_eq!< / span > (map.len(), < span class = "number" > 3< / span > );
< span class = "comment" > // Existing key (insert)
< / span > < span class = "kw" > let < / span > key = String::from(< span class = "string" > "a"< / span > );
< span class = "kw" > let < / span > entry: EntryRef< < span class = "kw" > _< / span > , < span class = "kw" > _< / span > , < span class = "kw" > _< / span > , < span class = "kw" > _< / span > > = map.entry_ref(< span class = "kw-2" > & < / span > key);
< span class = "kw" > let < / span > _raw_o: OccupiedEntryRef< < span class = "kw" > _< / span > , < span class = "kw" > _< / span > , < span class = "kw" > _< / span > , < span class = "kw" > _< / span > > = entry.insert(< span class = "number" > 1< / span > );
< span class = "macro" > assert_eq!< / span > (map.len(), < span class = "number" > 3< / span > );
< span class = "comment" > // Nonexistent key (insert)
< / span > map.entry_ref(< span class = "string" > "d"< / span > ).insert(< span class = "number" > 4< / span > );
< span class = "comment" > // Existing key (or_insert)
< / span > < span class = "kw" > let < / span > v = map.entry_ref(< span class = "string" > "b"< / span > ).or_insert(< span class = "number" > 2< / span > );
< span class = "macro" > assert_eq!< / span > (std::mem::replace(v, < span class = "number" > 2< / span > ), < span class = "number" > 20< / span > );
< span class = "comment" > // Nonexistent key (or_insert)
< / span > map.entry_ref(< span class = "string" > "e"< / span > ).or_insert(< span class = "number" > 5< / span > );
< span class = "comment" > // Existing key (or_insert_with)
< / span > < span class = "kw" > let < / span > v = map.entry_ref(< span class = "string" > "c"< / span > ).or_insert_with(|| < span class = "number" > 3< / span > );
< span class = "macro" > assert_eq!< / span > (std::mem::replace(v, < span class = "number" > 3< / span > ), < span class = "number" > 30< / span > );
< span class = "comment" > // Nonexistent key (or_insert_with)
< / span > map.entry_ref(< span class = "string" > "f"< / span > ).or_insert_with(|| < span class = "number" > 6< / span > );
< span class = "macro" > println!< / span > (< span class = "string" > "Our HashMap: {:?}"< / span > , map);
< span class = "kw" > for < / span > (key, value) < span class = "kw" > in < / span > [< span class = "string" > "a"< / span > , < span class = "string" > "b"< / span > , < span class = "string" > "c"< / span > , < span class = "string" > "d"< / span > , < span class = "string" > "e"< / span > , < span class = "string" > "f"< / span > ].into_iter().zip(< span class = "number" > 1< / span > ..=< span class = "number" > 6< / span > ) {
< span class = "macro" > assert_eq!< / span > (map[key], value)
}
< span class = "macro" > assert_eq!< / span > (map.len(), < span class = "number" > 6< / span > );< / code > < / pre > < / div >
< / div > < / details > < h2 id = "variants" class = "variants section-header" > Variants< a href = "#variants" class = "anchor" > §< / a > < / h2 > < div class = "variants" > < section id = "variant.Occupied" class = "variant" > < a href = "#variant.Occupied" class = "anchor" > §< / a > < h3 class = "code-header" > Occupied(< a class = "struct" href = "struct.OccupiedEntryRef.html" title = "struct hashbrown::hash_map::OccupiedEntryRef" > OccupiedEntryRef< / a > < 'a, 'b, K, Q, V, S, A> )< / h3 > < / section > < div class = "docblock" > < p > An occupied entry.< / p >
2024-03-27 11:12:16 +00:00
< h4 id = "examples-1" > < a class = "doc-anchor" href = "#examples-1" > §< / a > Examples< / h4 >
2024-03-11 08:39:13 +00:00
< div class = "example-wrap" > < pre class = "rust rust-example-rendered" > < code > < span class = "kw" > use < / span > hashbrown::hash_map::{EntryRef, HashMap};
< span class = "kw" > let < / span > < span class = "kw-2" > mut < / span > map: HashMap< < span class = "kw" > _< / span > , < span class = "kw" > _< / span > > = [(< span class = "string" > "a"< / span > .to_owned(), < span class = "number" > 100< / span > ), (< span class = "string" > "b"< / span > .into(), < span class = "number" > 200< / span > )].into();
< span class = "kw" > match < / span > map.entry_ref(< span class = "string" > "a"< / span > ) {
EntryRef::Vacant(< span class = "kw" > _< / span > ) => < span class = "macro" > unreachable!< / span > (),
EntryRef::Occupied(< span class = "kw" > _< / span > ) => { }
}< / code > < / pre > < / div >
< / div > < section id = "variant.Vacant" class = "variant" > < a href = "#variant.Vacant" class = "anchor" > §< / a > < h3 class = "code-header" > Vacant(< a class = "struct" href = "struct.VacantEntryRef.html" title = "struct hashbrown::hash_map::VacantEntryRef" > VacantEntryRef< / a > < 'a, 'b, K, Q, V, S, A> )< / h3 > < / section > < div class = "docblock" > < p > A vacant entry.< / p >
2024-03-27 11:12:16 +00:00
< h4 id = "examples-2" > < a class = "doc-anchor" href = "#examples-2" > §< / a > Examples< / h4 >
2024-03-11 08:39:13 +00:00
< div class = "example-wrap" > < pre class = "rust rust-example-rendered" > < code > < span class = "kw" > use < / span > hashbrown::hash_map::{EntryRef, HashMap};
< span class = "kw" > let < / span > < span class = "kw-2" > mut < / span > map: HashMap< String, i32> = HashMap::new();
< span class = "kw" > match < / span > map.entry_ref(< span class = "string" > "a"< / span > ) {
EntryRef::Occupied(< span class = "kw" > _< / span > ) => < span class = "macro" > unreachable!< / span > (),
EntryRef::Vacant(< span class = "kw" > _< / span > ) => { }
}< / code > < / pre > < / div >
2024-07-26 09:42:18 +00:00
< / div > < / div > < h2 id = "implementations" class = "section-header" > Implementations< a href = "#implementations" class = "anchor" > §< / a > < / h2 > < div id = "implementations-list" > < details class = "toggle implementors-toggle" open > < summary > < section id = "impl-EntryRef%3C'a,+'b,+K,+Q,+V,+S,+A%3E" class = "impl" > < a class = "src rightside" href = "../../src/hashbrown/map.rs.html#5709-5954" > source< / a > < a href = "#impl-EntryRef%3C'a,+'b,+K,+Q,+V,+S,+A%3E" class = "anchor" > §< / a > < h3 class = "code-header" > impl< 'a, 'b, K, Q: ?< a class = "trait" href = "https://doc.rust-lang.org/1.80.0/core/marker/trait.Sized.html" title = "trait core::marker::Sized" > Sized< / a > , V, S, A: Allocator> < a class = "enum" href = "enum.EntryRef.html" title = "enum hashbrown::hash_map::EntryRef" > EntryRef< / a > < 'a, 'b, K, Q, V, S, A> < / h3 > < / section > < / summary > < div class = "impl-items" > < details class = "toggle method-toggle" open > < summary > < section id = "method.insert" class = "method" > < a class = "src rightside" href = "../../src/hashbrown/map.rs.html#5723-5735" > source< / a > < h4 class = "code-header" > pub fn < a href = "#method.insert" class = "fn" > insert< / a > (self, value: V) -> < a class = "struct" href = "struct.OccupiedEntryRef.html" title = "struct hashbrown::hash_map::OccupiedEntryRef" > OccupiedEntryRef< / a > < 'a, 'b, K, Q, V, S, A> < div class = "where" > where
K: < a class = "trait" href = "https://doc.rust-lang.org/1.80.0/core/hash/trait.Hash.html" title = "trait core::hash::Hash" > Hash< / a > + < a class = "trait" href = "https://doc.rust-lang.org/1.80.0/core/convert/trait.From.html" title = "trait core::convert::From" > From< / a > < < a class = "primitive" href = "https://doc.rust-lang.org/1.80.0/core/primitive.reference.html" > & 'b Q< / a > > ,
S: < a class = "trait" href = "https://doc.rust-lang.org/1.80.0/core/hash/trait.BuildHasher.html" title = "trait core::hash::BuildHasher" > BuildHasher< / a > ,< / div > < / h4 > < / section > < / summary > < div class = "docblock" > < p > Sets the value of the entry, and returns an OccupiedEntryRef.< / p >
2024-03-27 11:12:16 +00:00
< h5 id = "examples-3" > < a class = "doc-anchor" href = "#examples-3" > §< / a > Examples< / h5 >
2024-03-11 08:39:13 +00:00
< div class = "example-wrap" > < pre class = "rust rust-example-rendered" > < code > < span class = "kw" > use < / span > hashbrown::HashMap;
< span class = "kw" > let < / span > < span class = "kw-2" > mut < / span > map: HashMap< String, u32> = HashMap::new();
< span class = "kw" > let < / span > entry = map.entry_ref(< span class = "string" > "horseyland"< / span > ).insert(< span class = "number" > 37< / span > );
< span class = "macro" > assert_eq!< / span > (entry.key(), < span class = "string" > "horseyland"< / span > );< / code > < / pre > < / div >
2024-07-26 09:42:18 +00:00
< / div > < / details > < details class = "toggle method-toggle" open > < summary > < section id = "method.or_insert" class = "method" > < a class = "src rightside" href = "../../src/hashbrown/map.rs.html#5756-5765" > source< / a > < h4 class = "code-header" > pub fn < a href = "#method.or_insert" class = "fn" > or_insert< / a > (self, default: V) -> < a class = "primitive" href = "https://doc.rust-lang.org/1.80.0/core/primitive.reference.html" > & 'a mut V< / a > < div class = "where" > where
K: < a class = "trait" href = "https://doc.rust-lang.org/1.80.0/core/hash/trait.Hash.html" title = "trait core::hash::Hash" > Hash< / a > + < a class = "trait" href = "https://doc.rust-lang.org/1.80.0/core/convert/trait.From.html" title = "trait core::convert::From" > From< / a > < < a class = "primitive" href = "https://doc.rust-lang.org/1.80.0/core/primitive.reference.html" > & 'b Q< / a > > ,
S: < a class = "trait" href = "https://doc.rust-lang.org/1.80.0/core/hash/trait.BuildHasher.html" title = "trait core::hash::BuildHasher" > BuildHasher< / a > ,< / div > < / h4 > < / section > < / summary > < div class = "docblock" > < p > Ensures a value is in the entry by inserting the default if empty, and returns
2024-03-11 08:39:13 +00:00
a mutable reference to the value in the entry.< / p >
2024-03-27 11:12:16 +00:00
< h5 id = "examples-4" > < a class = "doc-anchor" href = "#examples-4" > §< / a > Examples< / h5 >
2024-03-11 08:39:13 +00:00
< div class = "example-wrap" > < pre class = "rust rust-example-rendered" > < code > < span class = "kw" > use < / span > hashbrown::HashMap;
< span class = "kw" > let < / span > < span class = "kw-2" > mut < / span > map: HashMap< String, u32> = HashMap::new();
< span class = "comment" > // nonexistent key
< / span > map.entry_ref(< span class = "string" > "poneyland"< / span > ).or_insert(< span class = "number" > 3< / span > );
< span class = "macro" > assert_eq!< / span > (map[< span class = "string" > "poneyland"< / span > ], < span class = "number" > 3< / span > );
< span class = "comment" > // existing key
< / span > < span class = "kw-2" > *< / span > map.entry_ref(< span class = "string" > "poneyland"< / span > ).or_insert(< span class = "number" > 10< / span > ) < span class = "kw-2" > *< / span > = < span class = "number" > 2< / span > ;
< span class = "macro" > assert_eq!< / span > (map[< span class = "string" > "poneyland"< / span > ], < span class = "number" > 6< / span > );< / code > < / pre > < / div >
2024-07-26 09:42:18 +00:00
< / div > < / details > < details class = "toggle method-toggle" open > < summary > < section id = "method.or_insert_with" class = "method" > < a class = "src rightside" href = "../../src/hashbrown/map.rs.html#5786-5795" > source< / a > < h4 class = "code-header" > pub fn < a href = "#method.or_insert_with" class = "fn" > or_insert_with< / a > < F: < a class = "trait" href = "https://doc.rust-lang.org/1.80.0/core/ops/function/trait.FnOnce.html" title = "trait core::ops::function::FnOnce" > FnOnce< / a > () -> V> (self, default: F) -> < a class = "primitive" href = "https://doc.rust-lang.org/1.80.0/core/primitive.reference.html" > & 'a mut V< / a > < div class = "where" > where
K: < a class = "trait" href = "https://doc.rust-lang.org/1.80.0/core/hash/trait.Hash.html" title = "trait core::hash::Hash" > Hash< / a > + < a class = "trait" href = "https://doc.rust-lang.org/1.80.0/core/convert/trait.From.html" title = "trait core::convert::From" > From< / a > < < a class = "primitive" href = "https://doc.rust-lang.org/1.80.0/core/primitive.reference.html" > & 'b Q< / a > > ,
S: < a class = "trait" href = "https://doc.rust-lang.org/1.80.0/core/hash/trait.BuildHasher.html" title = "trait core::hash::BuildHasher" > BuildHasher< / a > ,< / div > < / h4 > < / section > < / summary > < div class = "docblock" > < p > Ensures a value is in the entry by inserting the result of the default function if empty,
2024-03-11 08:39:13 +00:00
and returns a mutable reference to the value in the entry.< / p >
2024-03-27 11:12:16 +00:00
< h5 id = "examples-5" > < a class = "doc-anchor" href = "#examples-5" > §< / a > Examples< / h5 >
2024-03-11 08:39:13 +00:00
< div class = "example-wrap" > < pre class = "rust rust-example-rendered" > < code > < span class = "kw" > use < / span > hashbrown::HashMap;
< span class = "kw" > let < / span > < span class = "kw-2" > mut < / span > map: HashMap< String, u32> = HashMap::new();
< span class = "comment" > // nonexistent key
< / span > map.entry_ref(< span class = "string" > "poneyland"< / span > ).or_insert_with(|| < span class = "number" > 3< / span > );
< span class = "macro" > assert_eq!< / span > (map[< span class = "string" > "poneyland"< / span > ], < span class = "number" > 3< / span > );
< span class = "comment" > // existing key
< / span > < span class = "kw-2" > *< / span > map.entry_ref(< span class = "string" > "poneyland"< / span > ).or_insert_with(|| < span class = "number" > 10< / span > ) < span class = "kw-2" > *< / span > = < span class = "number" > 2< / span > ;
< span class = "macro" > assert_eq!< / span > (map[< span class = "string" > "poneyland"< / span > ], < span class = "number" > 6< / span > );< / code > < / pre > < / div >
2024-07-26 09:42:18 +00:00
< / div > < / details > < details class = "toggle method-toggle" open > < summary > < section id = "method.or_insert_with_key" class = "method" > < a class = "src rightside" href = "../../src/hashbrown/map.rs.html#5817-5829" > source< / a > < h4 class = "code-header" > pub fn < a href = "#method.or_insert_with_key" class = "fn" > or_insert_with_key< / a > < F: < a class = "trait" href = "https://doc.rust-lang.org/1.80.0/core/ops/function/trait.FnOnce.html" title = "trait core::ops::function::FnOnce" > FnOnce< / a > (< a class = "primitive" href = "https://doc.rust-lang.org/1.80.0/core/primitive.reference.html" > & Q< / a > ) -> V> (self, default: F) -> < a class = "primitive" href = "https://doc.rust-lang.org/1.80.0/core/primitive.reference.html" > & 'a mut V< / a > < div class = "where" > where
K: < a class = "trait" href = "https://doc.rust-lang.org/1.80.0/core/hash/trait.Hash.html" title = "trait core::hash::Hash" > Hash< / a > + < a class = "trait" href = "https://doc.rust-lang.org/1.80.0/core/borrow/trait.Borrow.html" title = "trait core::borrow::Borrow" > Borrow< / a > < Q> + < a class = "trait" href = "https://doc.rust-lang.org/1.80.0/core/convert/trait.From.html" title = "trait core::convert::From" > From< / a > < < a class = "primitive" href = "https://doc.rust-lang.org/1.80.0/core/primitive.reference.html" > & 'b Q< / a > > ,
S: < a class = "trait" href = "https://doc.rust-lang.org/1.80.0/core/hash/trait.BuildHasher.html" title = "trait core::hash::BuildHasher" > BuildHasher< / a > ,< / div > < / h4 > < / section > < / summary > < div class = "docblock" > < p > Ensures a value is in the entry by inserting, if empty, the result of the default function.
2024-03-11 08:39:13 +00:00
This method allows for generating key-derived values for insertion by providing the default
function an access to the borrower form of the key.< / p >
2024-03-27 11:12:16 +00:00
< h5 id = "examples-6" > < a class = "doc-anchor" href = "#examples-6" > §< / a > Examples< / h5 >
2024-03-11 08:39:13 +00:00
< div class = "example-wrap" > < pre class = "rust rust-example-rendered" > < code > < span class = "kw" > use < / span > hashbrown::HashMap;
< span class = "kw" > let < / span > < span class = "kw-2" > mut < / span > map: HashMap< String, usize> = HashMap::new();
< span class = "comment" > // nonexistent key
< / span > map.entry_ref(< span class = "string" > "poneyland"< / span > ).or_insert_with_key(|key| key.chars().count());
< span class = "macro" > assert_eq!< / span > (map[< span class = "string" > "poneyland"< / span > ], < span class = "number" > 9< / span > );
< span class = "comment" > // existing key
< / span > < span class = "kw-2" > *< / span > map.entry_ref(< span class = "string" > "poneyland"< / span > ).or_insert_with_key(|key| key.chars().count() * < span class = "number" > 10< / span > ) < span class = "kw-2" > *< / span > = < span class = "number" > 2< / span > ;
< span class = "macro" > assert_eq!< / span > (map[< span class = "string" > "poneyland"< / span > ], < span class = "number" > 18< / span > );< / code > < / pre > < / div >
2024-07-26 09:42:18 +00:00
< / div > < / details > < details class = "toggle method-toggle" open > < summary > < section id = "method.key" class = "method" > < a class = "src rightside" href = "../../src/hashbrown/map.rs.html#5846-5854" > source< / a > < h4 class = "code-header" > pub fn < a href = "#method.key" class = "fn" > key< / a > (& self) -> < a class = "primitive" href = "https://doc.rust-lang.org/1.80.0/core/primitive.reference.html" > & Q< / a > < div class = "where" > where
K: < a class = "trait" href = "https://doc.rust-lang.org/1.80.0/core/borrow/trait.Borrow.html" title = "trait core::borrow::Borrow" > Borrow< / a > < Q> ,< / div > < / h4 > < / section > < / summary > < div class = "docblock" > < p > Returns a reference to this entry’ s key.< / p >
2024-03-27 11:12:16 +00:00
< h5 id = "examples-7" > < a class = "doc-anchor" href = "#examples-7" > §< / a > Examples< / h5 >
2024-03-11 08:39:13 +00:00
< div class = "example-wrap" > < pre class = "rust rust-example-rendered" > < code > < span class = "kw" > use < / span > hashbrown::HashMap;
< span class = "kw" > let < / span > < span class = "kw-2" > mut < / span > map: HashMap< String, u32> = HashMap::new();
map.entry_ref(< span class = "string" > "poneyland"< / span > ).or_insert(< span class = "number" > 3< / span > );
< span class = "comment" > // existing key
< / span > < span class = "macro" > assert_eq!< / span > (map.entry_ref(< span class = "string" > "poneyland"< / span > ).key(), < span class = "string" > "poneyland"< / span > );
< span class = "comment" > // nonexistent key
< / span > < span class = "macro" > assert_eq!< / span > (map.entry_ref(< span class = "string" > "horseland"< / span > ).key(), < span class = "string" > "horseland"< / span > );< / code > < / pre > < / div >
< / div > < / details > < details class = "toggle method-toggle" open > < summary > < section id = "method.and_modify" class = "method" > < a class = "src rightside" href = "../../src/hashbrown/map.rs.html#5877-5888" > source< / a > < h4 class = "code-header" > pub fn < a href = "#method.and_modify" class = "fn" > and_modify< / a > < F> (self, f: F) -> Self< div class = "where" > where
2024-07-26 09:42:18 +00:00
F: < a class = "trait" href = "https://doc.rust-lang.org/1.80.0/core/ops/function/trait.FnOnce.html" title = "trait core::ops::function::FnOnce" > FnOnce< / a > (< a class = "primitive" href = "https://doc.rust-lang.org/1.80.0/core/primitive.reference.html" > & mut V< / a > ),< / div > < / h4 > < / section > < / summary > < div class = "docblock" > < p > Provides in-place mutable access to an occupied entry before any
2024-03-11 08:39:13 +00:00
potential inserts into the map.< / p >
2024-03-27 11:12:16 +00:00
< h5 id = "examples-8" > < a class = "doc-anchor" href = "#examples-8" > §< / a > Examples< / h5 >
2024-03-11 08:39:13 +00:00
< div class = "example-wrap" > < pre class = "rust rust-example-rendered" > < code > < span class = "kw" > use < / span > hashbrown::HashMap;
< span class = "kw" > let < / span > < span class = "kw-2" > mut < / span > map: HashMap< String, u32> = HashMap::new();
map.entry_ref(< span class = "string" > "poneyland"< / span > )
.and_modify(|e| { < span class = "kw-2" > *< / span > e += < span class = "number" > 1 < / span > })
.or_insert(< span class = "number" > 42< / span > );
< span class = "macro" > assert_eq!< / span > (map[< span class = "string" > "poneyland"< / span > ], < span class = "number" > 42< / span > );
map.entry_ref(< span class = "string" > "poneyland"< / span > )
.and_modify(|e| { < span class = "kw-2" > *< / span > e += < span class = "number" > 1 < / span > })
.or_insert(< span class = "number" > 42< / span > );
< span class = "macro" > assert_eq!< / span > (map[< span class = "string" > "poneyland"< / span > ], < span class = "number" > 43< / span > );< / code > < / pre > < / div >
< / div > < / details > < details class = "toggle method-toggle" open > < summary > < section id = "method.and_replace_entry_with" class = "method" > < a class = "src rightside" href = "../../src/hashbrown/map.rs.html#5945-5953" > source< / a > < h4 class = "code-header" > pub fn < a href = "#method.and_replace_entry_with" class = "fn" > and_replace_entry_with< / a > < F> (self, f: F) -> Self< div class = "where" > where
2024-07-26 09:42:18 +00:00
F: < a class = "trait" href = "https://doc.rust-lang.org/1.80.0/core/ops/function/trait.FnOnce.html" title = "trait core::ops::function::FnOnce" > FnOnce< / a > (< a class = "primitive" href = "https://doc.rust-lang.org/1.80.0/core/primitive.reference.html" > & K< / a > , V) -> < a class = "enum" href = "https://doc.rust-lang.org/1.80.0/core/option/enum.Option.html" title = "enum core::option::Option" > Option< / a > < V> ,< / div > < / h4 > < / section > < / summary > < div class = "docblock" > < p > Provides shared access to the key and owned access to the value of
2024-03-11 08:39:13 +00:00
an occupied entry and allows to replace or remove it based on the
value of the returned option.< / p >
2024-03-27 11:12:16 +00:00
< h5 id = "examples-9" > < a class = "doc-anchor" href = "#examples-9" > §< / a > Examples< / h5 >
2024-03-11 08:39:13 +00:00
< div class = "example-wrap" > < pre class = "rust rust-example-rendered" > < code > < span class = "kw" > use < / span > hashbrown::HashMap;
< span class = "kw" > use < / span > hashbrown::hash_map::EntryRef;
< span class = "kw" > let < / span > < span class = "kw-2" > mut < / span > map: HashMap< String, u32> = HashMap::new();
< span class = "kw" > let < / span > entry = map
.entry_ref(< span class = "string" > "poneyland"< / span > )
.and_replace_entry_with(|_k, _v| < span class = "macro" > panic!< / span > ());
< span class = "kw" > match < / span > entry {
EntryRef::Vacant(e) => {
< span class = "macro" > assert_eq!< / span > (e.key(), < span class = "string" > "poneyland"< / span > );
}
EntryRef::Occupied(< span class = "kw" > _< / span > ) => < span class = "macro" > panic!< / span > (),
}
map.insert(< span class = "string" > "poneyland"< / span > .to_string(), < span class = "number" > 42< / span > );
< span class = "kw" > let < / span > entry = map
.entry_ref(< span class = "string" > "poneyland"< / span > )
.and_replace_entry_with(|k, v| {
< span class = "macro" > assert_eq!< / span > (k, < span class = "string" > "poneyland"< / span > );
< span class = "macro" > assert_eq!< / span > (v, < span class = "number" > 42< / span > );
< span class = "prelude-val" > Some< / span > (v + < span class = "number" > 1< / span > )
});
< span class = "kw" > match < / span > entry {
EntryRef::Occupied(e) => {
< span class = "macro" > assert_eq!< / span > (e.key(), < span class = "string" > "poneyland"< / span > );
< span class = "macro" > assert_eq!< / span > (e.get(), < span class = "kw-2" > & < / span > < span class = "number" > 43< / span > );
}
EntryRef::Vacant(< span class = "kw" > _< / span > ) => < span class = "macro" > panic!< / span > (),
}
< span class = "macro" > assert_eq!< / span > (map[< span class = "string" > "poneyland"< / span > ], < span class = "number" > 43< / span > );
< span class = "kw" > let < / span > entry = map
.entry_ref(< span class = "string" > "poneyland"< / span > )
.and_replace_entry_with(|_k, _v| < span class = "prelude-val" > None< / span > );
< span class = "kw" > match < / span > entry {
EntryRef::Vacant(e) => < span class = "macro" > assert_eq!< / span > (e.key(), < span class = "string" > "poneyland"< / span > ),
EntryRef::Occupied(< span class = "kw" > _< / span > ) => < span class = "macro" > panic!< / span > (),
}
< span class = "macro" > assert!< / span > (!map.contains_key(< span class = "string" > "poneyland"< / span > ));< / code > < / pre > < / div >
2024-07-26 09:42:18 +00:00
< / div > < / details > < / div > < / details > < details class = "toggle implementors-toggle" open > < summary > < section id = "impl-EntryRef%3C'a,+'b,+K,+Q,+V,+S,+A%3E-1" class = "impl" > < a class = "src rightside" href = "../../src/hashbrown/map.rs.html#5956-5987" > source< / a > < a href = "#impl-EntryRef%3C'a,+'b,+K,+Q,+V,+S,+A%3E-1" class = "anchor" > §< / a > < h3 class = "code-header" > impl< 'a, 'b, K, Q: ?< a class = "trait" href = "https://doc.rust-lang.org/1.80.0/core/marker/trait.Sized.html" title = "trait core::marker::Sized" > Sized< / a > , V: < a class = "trait" href = "https://doc.rust-lang.org/1.80.0/core/default/trait.Default.html" title = "trait core::default::Default" > Default< / a > , S, A: Allocator> < a class = "enum" href = "enum.EntryRef.html" title = "enum hashbrown::hash_map::EntryRef" > EntryRef< / a > < 'a, 'b, K, Q, V, S, A> < / h3 > < / section > < / summary > < div class = "impl-items" > < details class = "toggle method-toggle" open > < summary > < section id = "method.or_default" class = "method" > < a class = "src rightside" href = "../../src/hashbrown/map.rs.html#5977-5986" > source< / a > < h4 class = "code-header" > pub fn < a href = "#method.or_default" class = "fn" > or_default< / a > (self) -> < a class = "primitive" href = "https://doc.rust-lang.org/1.80.0/core/primitive.reference.html" > & 'a mut V< / a > < div class = "where" > where
K: < a class = "trait" href = "https://doc.rust-lang.org/1.80.0/core/hash/trait.Hash.html" title = "trait core::hash::Hash" > Hash< / a > + < a class = "trait" href = "https://doc.rust-lang.org/1.80.0/core/convert/trait.From.html" title = "trait core::convert::From" > From< / a > < < a class = "primitive" href = "https://doc.rust-lang.org/1.80.0/core/primitive.reference.html" > & 'b Q< / a > > ,
S: < a class = "trait" href = "https://doc.rust-lang.org/1.80.0/core/hash/trait.BuildHasher.html" title = "trait core::hash::BuildHasher" > BuildHasher< / a > ,< / div > < / h4 > < / section > < / summary > < div class = "docblock" > < p > Ensures a value is in the entry by inserting the default value if empty,
2024-03-11 08:39:13 +00:00
and returns a mutable reference to the value in the entry.< / p >
2024-03-27 11:12:16 +00:00
< h5 id = "examples-10" > < a class = "doc-anchor" href = "#examples-10" > §< / a > Examples< / h5 >
2024-03-11 08:39:13 +00:00
< div class = "example-wrap" > < pre class = "rust rust-example-rendered" > < code > < span class = "kw" > use < / span > hashbrown::HashMap;
< span class = "kw" > let < / span > < span class = "kw-2" > mut < / span > map: HashMap< String, < span class = "prelude-ty" > Option< / span > < u32> > = HashMap::new();
< span class = "comment" > // nonexistent key
< / span > map.entry_ref(< span class = "string" > "poneyland"< / span > ).or_default();
< span class = "macro" > assert_eq!< / span > (map[< span class = "string" > "poneyland"< / span > ], < span class = "prelude-val" > None< / span > );
map.insert(< span class = "string" > "horseland"< / span > .to_string(), < span class = "prelude-val" > Some< / span > (< span class = "number" > 3< / span > ));
< span class = "comment" > // existing key
< / span > < span class = "macro" > assert_eq!< / span > (map.entry_ref(< span class = "string" > "horseland"< / span > ).or_default(), < span class = "kw-2" > & mut < / span > < span class = "prelude-val" > Some< / span > (< span class = "number" > 3< / span > ));< / code > < / pre > < / div >
2024-07-26 09:42:18 +00:00
< / div > < / details > < / div > < / details > < / div > < h2 id = "trait-implementations" class = "section-header" > Trait Implementations< a href = "#trait-implementations" class = "anchor" > §< / a > < / h2 > < div id = "trait-implementations-list" > < details class = "toggle implementors-toggle" open > < summary > < section id = "impl-Debug-for-EntryRef%3C'_,+'_,+K,+Q,+V,+S,+A%3E" class = "impl" > < a class = "src rightside" href = "../../src/hashbrown/map.rs.html#4412-4421" > source< / a > < a href = "#impl-Debug-for-EntryRef%3C'_,+'_,+K,+Q,+V,+S,+A%3E" class = "anchor" > §< / a > < h3 class = "code-header" > impl< K: < a class = "trait" href = "https://doc.rust-lang.org/1.80.0/core/borrow/trait.Borrow.html" title = "trait core::borrow::Borrow" > Borrow< / a > < Q> , Q: ?< a class = "trait" href = "https://doc.rust-lang.org/1.80.0/core/marker/trait.Sized.html" title = "trait core::marker::Sized" > Sized< / a > + < a class = "trait" href = "https://doc.rust-lang.org/1.80.0/core/fmt/trait.Debug.html" title = "trait core::fmt::Debug" > Debug< / a > , V: < a class = "trait" href = "https://doc.rust-lang.org/1.80.0/core/fmt/trait.Debug.html" title = "trait core::fmt::Debug" > Debug< / a > , S, A: Allocator> < a class = "trait" href = "https://doc.rust-lang.org/1.80.0/core/fmt/trait.Debug.html" title = "trait core::fmt::Debug" > Debug< / a > for < a class = "enum" href = "enum.EntryRef.html" title = "enum hashbrown::hash_map::EntryRef" > EntryRef< / a > < '_, '_, K, Q, V, S, A> < / h3 > < / section > < / summary > < div class = "impl-items" > < details class = "toggle method-toggle" open > < summary > < section id = "method.fmt" class = "method trait-impl" > < a class = "src rightside" href = "../../src/hashbrown/map.rs.html#4415-4420" > source< / a > < a href = "#method.fmt" class = "anchor" > §< / a > < h4 class = "code-header" > fn < a href = "https://doc.rust-lang.org/1.80.0/core/fmt/trait.Debug.html#tymethod.fmt" class = "fn" > fmt< / a > (& self, f: & mut < a class = "struct" href = "https://doc.rust-lang.org/1.80.0/core/fmt/struct.Formatter.html" title = "struct core::fmt::Formatter" > Formatter< / a > < '_> ) -> < a class = "type" href = "https://doc.rust-lang.org/1.80.0/core/fmt/type.Result.html" title = "type core::fmt::Result" > Result< / a > < / h4 > < / section > < / summary > < div class = 'docblock' > Formats the value using the given formatter. < a href = "https://doc.rust-lang.org/1.80.0/core/fmt/trait.Debug.html#tymethod.fmt" > Read more< / a > < / div > < / details > < / div > < / details > < / div > < h2 id = "synthetic-implementations" class = "section-header" > Auto Trait Implementations< a href = "#synthetic-implementations" class = "anchor" > §< / a > < / h2 > < div id = "synthetic-implementations-list" > < section id = "impl-Freeze-for-EntryRef%3C'a,+'b,+K,+Q,+V,+S,+A%3E" class = "impl" > < a href = "#impl-Freeze-for-EntryRef%3C'a,+'b,+K,+Q,+V,+S,+A%3E" class = "anchor" > §< / a > < h3 class = "code-header" > impl< 'a, 'b, K, Q, V, S, A> < a class = "trait" href = "https://doc.rust-lang.org/1.80.0/core/marker/trait.Freeze.html" title = "trait core::marker::Freeze" > Freeze< / a > for < a class = "enum" href = "enum.EntryRef.html" title = "enum hashbrown::hash_map::EntryRef" > EntryRef< / a > < 'a, 'b, K, Q, V, S, A> < div class = "where" > where
K: < a class = "trait" href = "https://doc.rust-lang.org/1.80.0/core/marker/trait.Freeze.html" title = "trait core::marker::Freeze" > Freeze< / a > ,
Q: ?< a class = "trait" href = "https://doc.rust-lang.org/1.80.0/core/marker/trait.Sized.html" title = "trait core::marker::Sized" > Sized< / a > ,< / div > < / h3 > < / section > < section id = "impl-RefUnwindSafe-for-EntryRef%3C'a,+'b,+K,+Q,+V,+S,+A%3E" class = "impl" > < a href = "#impl-RefUnwindSafe-for-EntryRef%3C'a,+'b,+K,+Q,+V,+S,+A%3E" class = "anchor" > §< / a > < h3 class = "code-header" > impl< 'a, 'b, K, Q, V, S, A> < a class = "trait" href = "https://doc.rust-lang.org/1.80.0/core/panic/unwind_safe/trait.RefUnwindSafe.html" title = "trait core::panic::unwind_safe::RefUnwindSafe" > RefUnwindSafe< / a > for < a class = "enum" href = "enum.EntryRef.html" title = "enum hashbrown::hash_map::EntryRef" > EntryRef< / a > < 'a, 'b, K, Q, V, S, A> < div class = "where" > where
K: < a class = "trait" href = "https://doc.rust-lang.org/1.80.0/core/panic/unwind_safe/trait.RefUnwindSafe.html" title = "trait core::panic::unwind_safe::RefUnwindSafe" > RefUnwindSafe< / a > ,
S: < a class = "trait" href = "https://doc.rust-lang.org/1.80.0/core/panic/unwind_safe/trait.RefUnwindSafe.html" title = "trait core::panic::unwind_safe::RefUnwindSafe" > RefUnwindSafe< / a > ,
Q: < a class = "trait" href = "https://doc.rust-lang.org/1.80.0/core/panic/unwind_safe/trait.RefUnwindSafe.html" title = "trait core::panic::unwind_safe::RefUnwindSafe" > RefUnwindSafe< / a > + ?< a class = "trait" href = "https://doc.rust-lang.org/1.80.0/core/marker/trait.Sized.html" title = "trait core::marker::Sized" > Sized< / a > ,
A: < a class = "trait" href = "https://doc.rust-lang.org/1.80.0/core/panic/unwind_safe/trait.RefUnwindSafe.html" title = "trait core::panic::unwind_safe::RefUnwindSafe" > RefUnwindSafe< / a > ,
V: < a class = "trait" href = "https://doc.rust-lang.org/1.80.0/core/panic/unwind_safe/trait.RefUnwindSafe.html" title = "trait core::panic::unwind_safe::RefUnwindSafe" > RefUnwindSafe< / a > ,< / div > < / h3 > < / section > < section id = "impl-Send-for-EntryRef%3C'a,+'b,+K,+Q,+V,+S,+A%3E" class = "impl" > < a href = "#impl-Send-for-EntryRef%3C'a,+'b,+K,+Q,+V,+S,+A%3E" class = "anchor" > §< / a > < h3 class = "code-header" > impl< 'a, 'b, K, Q, V, S, A> < a class = "trait" href = "https://doc.rust-lang.org/1.80.0/core/marker/trait.Send.html" title = "trait core::marker::Send" > Send< / a > for < a class = "enum" href = "enum.EntryRef.html" title = "enum hashbrown::hash_map::EntryRef" > EntryRef< / a > < 'a, 'b, K, Q, V, S, A> < div class = "where" > where
K: < a class = "trait" href = "https://doc.rust-lang.org/1.80.0/core/marker/trait.Send.html" title = "trait core::marker::Send" > Send< / a > ,
Q: < a class = "trait" href = "https://doc.rust-lang.org/1.80.0/core/marker/trait.Sync.html" title = "trait core::marker::Sync" > Sync< / a > + ?< a class = "trait" href = "https://doc.rust-lang.org/1.80.0/core/marker/trait.Sized.html" title = "trait core::marker::Sized" > Sized< / a > ,
V: < a class = "trait" href = "https://doc.rust-lang.org/1.80.0/core/marker/trait.Send.html" title = "trait core::marker::Send" > Send< / a > ,
S: < a class = "trait" href = "https://doc.rust-lang.org/1.80.0/core/marker/trait.Send.html" title = "trait core::marker::Send" > Send< / a > ,
A: < a class = "trait" href = "https://doc.rust-lang.org/1.80.0/core/marker/trait.Send.html" title = "trait core::marker::Send" > Send< / a > ,< / div > < / h3 > < / section > < section id = "impl-Sync-for-EntryRef%3C'a,+'b,+K,+Q,+V,+S,+A%3E" class = "impl" > < a href = "#impl-Sync-for-EntryRef%3C'a,+'b,+K,+Q,+V,+S,+A%3E" class = "anchor" > §< / a > < h3 class = "code-header" > impl< 'a, 'b, K, Q, V, S, A> < a class = "trait" href = "https://doc.rust-lang.org/1.80.0/core/marker/trait.Sync.html" title = "trait core::marker::Sync" > Sync< / a > for < a class = "enum" href = "enum.EntryRef.html" title = "enum hashbrown::hash_map::EntryRef" > EntryRef< / a > < 'a, 'b, K, Q, V, S, A> < div class = "where" > where
K: < a class = "trait" href = "https://doc.rust-lang.org/1.80.0/core/marker/trait.Sync.html" title = "trait core::marker::Sync" > Sync< / a > ,
Q: < a class = "trait" href = "https://doc.rust-lang.org/1.80.0/core/marker/trait.Sync.html" title = "trait core::marker::Sync" > Sync< / a > + ?< a class = "trait" href = "https://doc.rust-lang.org/1.80.0/core/marker/trait.Sized.html" title = "trait core::marker::Sized" > Sized< / a > ,
V: < a class = "trait" href = "https://doc.rust-lang.org/1.80.0/core/marker/trait.Sync.html" title = "trait core::marker::Sync" > Sync< / a > ,
S: < a class = "trait" href = "https://doc.rust-lang.org/1.80.0/core/marker/trait.Sync.html" title = "trait core::marker::Sync" > Sync< / a > ,
A: < a class = "trait" href = "https://doc.rust-lang.org/1.80.0/core/marker/trait.Sync.html" title = "trait core::marker::Sync" > Sync< / a > ,< / div > < / h3 > < / section > < section id = "impl-Unpin-for-EntryRef%3C'a,+'b,+K,+Q,+V,+S,+A%3E" class = "impl" > < a href = "#impl-Unpin-for-EntryRef%3C'a,+'b,+K,+Q,+V,+S,+A%3E" class = "anchor" > §< / a > < h3 class = "code-header" > impl< 'a, 'b, K, Q, V, S, A> < a class = "trait" href = "https://doc.rust-lang.org/1.80.0/core/marker/trait.Unpin.html" title = "trait core::marker::Unpin" > Unpin< / a > for < a class = "enum" href = "enum.EntryRef.html" title = "enum hashbrown::hash_map::EntryRef" > EntryRef< / a > < 'a, 'b, K, Q, V, S, A> < div class = "where" > where
K: < a class = "trait" href = "https://doc.rust-lang.org/1.80.0/core/marker/trait.Unpin.html" title = "trait core::marker::Unpin" > Unpin< / a > ,
Q: ?< a class = "trait" href = "https://doc.rust-lang.org/1.80.0/core/marker/trait.Sized.html" title = "trait core::marker::Sized" > Sized< / a > ,< / div > < / h3 > < / section > < section id = "impl-UnwindSafe-for-EntryRef%3C'a,+'b,+K,+Q,+V,+S,+A%3E" class = "impl" > < a href = "#impl-UnwindSafe-for-EntryRef%3C'a,+'b,+K,+Q,+V,+S,+A%3E" class = "anchor" > §< / a > < h3 class = "code-header" > impl< 'a, 'b, K, Q, V, S, A = Global> !< a class = "trait" href = "https://doc.rust-lang.org/1.80.0/core/panic/unwind_safe/trait.UnwindSafe.html" title = "trait core::panic::unwind_safe::UnwindSafe" > UnwindSafe< / a > for < a class = "enum" href = "enum.EntryRef.html" title = "enum hashbrown::hash_map::EntryRef" > EntryRef< / a > < 'a, 'b, K, Q, V, S, A> < / h3 > < / section > < / div > < h2 id = "blanket-implementations" class = "section-header" > Blanket Implementations< a href = "#blanket-implementations" class = "anchor" > §< / a > < / h2 > < div id = "blanket-implementations-list" > < details class = "toggle implementors-toggle" > < summary > < section id = "impl-Any-for-T" class = "impl" > < a class = "src rightside" href = "https://doc.rust-lang.org/1.80.0/src/core/any.rs.html#140" > source< / a > < a href = "#impl-Any-for-T" class = "anchor" > §< / a > < h3 class = "code-header" > impl< T> < a class = "trait" href = "https://doc.rust-lang.org/1.80.0/core/any/trait.Any.html" title = "trait core::any::Any" > Any< / a > for T< div class = "where" > where
T: 'static + ?< a class = "trait" href = "https://doc.rust-lang.org/1.80.0/core/marker/trait.Sized.html" title = "trait core::marker::Sized" > Sized< / a > ,< / div > < / h3 > < / section > < / summary > < div class = "impl-items" > < details class = "toggle method-toggle" open > < summary > < section id = "method.type_id" class = "method trait-impl" > < a class = "src rightside" href = "https://doc.rust-lang.org/1.80.0/src/core/any.rs.html#141" > source< / a > < a href = "#method.type_id" class = "anchor" > §< / a > < h4 class = "code-header" > fn < a href = "https://doc.rust-lang.org/1.80.0/core/any/trait.Any.html#tymethod.type_id" class = "fn" > type_id< / a > (& self) -> < a class = "struct" href = "https://doc.rust-lang.org/1.80.0/core/any/struct.TypeId.html" title = "struct core::any::TypeId" > TypeId< / a > < / h4 > < / section > < / summary > < div class = 'docblock' > Gets the < code > TypeId< / code > of < code > self< / code > . < a href = "https://doc.rust-lang.org/1.80.0/core/any/trait.Any.html#tymethod.type_id" > Read more< / a > < / div > < / details > < / div > < / details > < details class = "toggle implementors-toggle" > < summary > < section id = "impl-Borrow%3CT%3E-for-T" class = "impl" > < a class = "src rightside" href = "https://doc.rust-lang.org/1.80.0/src/core/borrow.rs.html#208" > source< / a > < a href = "#impl-Borrow%3CT%3E-for-T" class = "anchor" > §< / a > < h3 class = "code-header" > impl< T> < a class = "trait" href = "https://doc.rust-lang.org/1.80.0/core/borrow/trait.Borrow.html" title = "trait core::borrow::Borrow" > Borrow< / a > < T> for T< div class = "where" > where
T: ?< a class = "trait" href = "https://doc.rust-lang.org/1.80.0/core/marker/trait.Sized.html" title = "trait core::marker::Sized" > Sized< / a > ,< / div > < / h3 > < / section > < / summary > < div class = "impl-items" > < details class = "toggle method-toggle" open > < summary > < section id = "method.borrow" class = "method trait-impl" > < a class = "src rightside" href = "https://doc.rust-lang.org/1.80.0/src/core/borrow.rs.html#210" > source< / a > < a href = "#method.borrow" class = "anchor" > §< / a > < h4 class = "code-header" > fn < a href = "https://doc.rust-lang.org/1.80.0/core/borrow/trait.Borrow.html#tymethod.borrow" class = "fn" > borrow< / a > (& self) -> < a class = "primitive" href = "https://doc.rust-lang.org/1.80.0/core/primitive.reference.html" > & T< / a > < / h4 > < / section > < / summary > < div class = 'docblock' > Immutably borrows from an owned value. < a href = "https://doc.rust-lang.org/1.80.0/core/borrow/trait.Borrow.html#tymethod.borrow" > Read more< / a > < / div > < / details > < / div > < / details > < details class = "toggle implementors-toggle" > < summary > < section id = "impl-BorrowMut%3CT%3E-for-T" class = "impl" > < a class = "src rightside" href = "https://doc.rust-lang.org/1.80.0/src/core/borrow.rs.html#216" > source< / a > < a href = "#impl-BorrowMut%3CT%3E-for-T" class = "anchor" > §< / a > < h3 class = "code-header" > impl< T> < a class = "trait" href = "https://doc.rust-lang.org/1.80.0/core/borrow/trait.BorrowMut.html" title = "trait core::borrow::BorrowMut" > BorrowMut< / a > < T> for T< div class = "where" > where
T: ?< a class = "trait" href = "https://doc.rust-lang.org/1.80.0/core/marker/trait.Sized.html" title = "trait core::marker::Sized" > Sized< / a > ,< / div > < / h3 > < / section > < / summary > < div class = "impl-items" > < details class = "toggle method-toggle" open > < summary > < section id = "method.borrow_mut" class = "method trait-impl" > < a class = "src rightside" href = "https://doc.rust-lang.org/1.80.0/src/core/borrow.rs.html#217" > source< / a > < a href = "#method.borrow_mut" class = "anchor" > §< / a > < h4 class = "code-header" > fn < a href = "https://doc.rust-lang.org/1.80.0/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class = "fn" > borrow_mut< / a > (& mut self) -> < a class = "primitive" href = "https://doc.rust-lang.org/1.80.0/core/primitive.reference.html" > & mut T< / a > < / h4 > < / section > < / summary > < div class = 'docblock' > Mutably borrows from an owned value. < a href = "https://doc.rust-lang.org/1.80.0/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" > Read more< / a > < / div > < / details > < / div > < / details > < details class = "toggle implementors-toggle" > < summary > < section id = "impl-From%3CT%3E-for-T" class = "impl" > < a class = "src rightside" href = "https://doc.rust-lang.org/1.80.0/src/core/convert/mod.rs.html#765" > source< / a > < a href = "#impl-From%3CT%3E-for-T" class = "anchor" > §< / a > < h3 class = "code-header" > impl< T> < a class = "trait" href = "https://doc.rust-lang.org/1.80.0/core/convert/trait.From.html" title = "trait core::convert::From" > From< / a > < T> for T< / h3 > < / section > < / summary > < div class = "impl-items" > < details class = "toggle method-toggle" open > < summary > < section id = "method.from" class = "method trait-impl" > < a class = "src rightside" href = "https://doc.rust-lang.org/1.80.0/src/core/convert/mod.rs.html#768" > source< / a > < a href = "#method.from" class = "anchor" > §< / a > < h4 class = "code-header" > fn < a href = "https://doc.rust-lang.org/1.80.0/core/convert/trait.From.html#tymethod.from" class = "fn" > from< / a > (t: T) -> T< / h4 > < / section > < / summary > < div class = "docblock" > < p > Returns the argument unchanged.< / p >
< / div > < / details > < / div > < / details > < details class = "toggle implementors-toggle" > < summary > < section id = "impl-Into%3CU%3E-for-T" class = "impl" > < a class = "src rightside" href = "https://doc.rust-lang.org/1.80.0/src/core/convert/mod.rs.html#748-750" > source< / a > < a href = "#impl-Into%3CU%3E-for-T" class = "anchor" > §< / a > < h3 class = "code-header" > impl< T, U> < a class = "trait" href = "https://doc.rust-lang.org/1.80.0/core/convert/trait.Into.html" title = "trait core::convert::Into" > Into< / a > < U> for T< div class = "where" > where
U: < a class = "trait" href = "https://doc.rust-lang.org/1.80.0/core/convert/trait.From.html" title = "trait core::convert::From" > From< / a > < T> ,< / div > < / h3 > < / section > < / summary > < div class = "impl-items" > < details class = "toggle method-toggle" open > < summary > < section id = "method.into" class = "method trait-impl" > < a class = "src rightside" href = "https://doc.rust-lang.org/1.80.0/src/core/convert/mod.rs.html#758" > source< / a > < a href = "#method.into" class = "anchor" > §< / a > < h4 class = "code-header" > fn < a href = "https://doc.rust-lang.org/1.80.0/core/convert/trait.Into.html#tymethod.into" class = "fn" > into< / a > (self) -> U< / h4 > < / section > < / summary > < div class = "docblock" > < p > Calls < code > U::from(self)< / code > .< / p >
2024-03-11 08:39:13 +00:00
< p > That is, this conversion is whatever the implementation of
2024-07-26 09:42:18 +00:00
< code > < a href = "https://doc.rust-lang.org/1.80.0/core/convert/trait.From.html" title = "trait core::convert::From" > From< / a > < T> for U< / code > chooses to do.< / p >
< / div > < / details > < / div > < / details > < details class = "toggle implementors-toggle" > < summary > < section id = "impl-TryFrom%3CU%3E-for-T" class = "impl" > < a class = "src rightside" href = "https://doc.rust-lang.org/1.80.0/src/core/convert/mod.rs.html#805-807" > source< / a > < a href = "#impl-TryFrom%3CU%3E-for-T" class = "anchor" > §< / a > < h3 class = "code-header" > impl< T, U> < a class = "trait" href = "https://doc.rust-lang.org/1.80.0/core/convert/trait.TryFrom.html" title = "trait core::convert::TryFrom" > TryFrom< / a > < U> for T< div class = "where" > where
U: < a class = "trait" href = "https://doc.rust-lang.org/1.80.0/core/convert/trait.Into.html" title = "trait core::convert::Into" > Into< / a > < T> ,< / div > < / h3 > < / section > < / summary > < div class = "impl-items" > < details class = "toggle" open > < summary > < section id = "associatedtype.Error" class = "associatedtype trait-impl" > < a href = "#associatedtype.Error" class = "anchor" > §< / a > < h4 class = "code-header" > type < a href = "https://doc.rust-lang.org/1.80.0/core/convert/trait.TryFrom.html#associatedtype.Error" class = "associatedtype" > Error< / a > = < a class = "enum" href = "https://doc.rust-lang.org/1.80.0/core/convert/enum.Infallible.html" title = "enum core::convert::Infallible" > Infallible< / a > < / h4 > < / section > < / summary > < div class = 'docblock' > The type returned in the event of a conversion error.< / div > < / details > < details class = "toggle method-toggle" open > < summary > < section id = "method.try_from" class = "method trait-impl" > < a class = "src rightside" href = "https://doc.rust-lang.org/1.80.0/src/core/convert/mod.rs.html#812" > source< / a > < a href = "#method.try_from" class = "anchor" > §< / a > < h4 class = "code-header" > fn < a href = "https://doc.rust-lang.org/1.80.0/core/convert/trait.TryFrom.html#tymethod.try_from" class = "fn" > try_from< / a > (value: U) -> < a class = "enum" href = "https://doc.rust-lang.org/1.80.0/core/result/enum.Result.html" title = "enum core::result::Result" > Result< / a > < T, < T as < a class = "trait" href = "https://doc.rust-lang.org/1.80.0/core/convert/trait.TryFrom.html" title = "trait core::convert::TryFrom" > TryFrom< / a > < U> > ::< a class = "associatedtype" href = "https://doc.rust-lang.org/1.80.0/core/convert/trait.TryFrom.html#associatedtype.Error" title = "type core::convert::TryFrom::Error" > Error< / a > > < / h4 > < / section > < / summary > < div class = 'docblock' > Performs the conversion.< / div > < / details > < / div > < / details > < details class = "toggle implementors-toggle" > < summary > < section id = "impl-TryInto%3CU%3E-for-T" class = "impl" > < a class = "src rightside" href = "https://doc.rust-lang.org/1.80.0/src/core/convert/mod.rs.html#790-792" > source< / a > < a href = "#impl-TryInto%3CU%3E-for-T" class = "anchor" > §< / a > < h3 class = "code-header" > impl< T, U> < a class = "trait" href = "https://doc.rust-lang.org/1.80.0/core/convert/trait.TryInto.html" title = "trait core::convert::TryInto" > TryInto< / a > < U> for T< div class = "where" > where
U: < a class = "trait" href = "https://doc.rust-lang.org/1.80.0/core/convert/trait.TryFrom.html" title = "trait core::convert::TryFrom" > TryFrom< / a > < T> ,< / div > < / h3 > < / section > < / summary > < div class = "impl-items" > < details class = "toggle" open > < summary > < section id = "associatedtype.Error-1" class = "associatedtype trait-impl" > < a href = "#associatedtype.Error-1" class = "anchor" > §< / a > < h4 class = "code-header" > type < a href = "https://doc.rust-lang.org/1.80.0/core/convert/trait.TryInto.html#associatedtype.Error" class = "associatedtype" > Error< / a > = < U as < a class = "trait" href = "https://doc.rust-lang.org/1.80.0/core/convert/trait.TryFrom.html" title = "trait core::convert::TryFrom" > TryFrom< / a > < T> > ::< a class = "associatedtype" href = "https://doc.rust-lang.org/1.80.0/core/convert/trait.TryFrom.html#associatedtype.Error" title = "type core::convert::TryFrom::Error" > Error< / a > < / h4 > < / section > < / summary > < div class = 'docblock' > The type returned in the event of a conversion error.< / div > < / details > < details class = "toggle method-toggle" open > < summary > < section id = "method.try_into" class = "method trait-impl" > < a class = "src rightside" href = "https://doc.rust-lang.org/1.80.0/src/core/convert/mod.rs.html#797" > source< / a > < a href = "#method.try_into" class = "anchor" > §< / a > < h4 class = "code-header" > fn < a href = "https://doc.rust-lang.org/1.80.0/core/convert/trait.TryInto.html#tymethod.try_into" class = "fn" > try_into< / a > (self) -> < a class = "enum" href = "https://doc.rust-lang.org/1.80.0/core/result/enum.Result.html" title = "enum core::result::Result" > Result< / a > < U, < U as < a class = "trait" href = "https://doc.rust-lang.org/1.80.0/core/convert/trait.TryFrom.html" title = "trait core::convert::TryFrom" > TryFrom< / a > < T> > ::< a class = "associatedtype" href = "https://doc.rust-lang.org/1.80.0/core/convert/trait.TryFrom.html#associatedtype.Error" title = "type core::convert::TryFrom::Error" > Error< / a > > < / h4 > < / section > < / summary > < div class = 'docblock' > Performs the conversion.< / div > < / details > < / div > < / details > < / div > < / section > < / div > < / main > < / body > < / html >