Struct fixed_map::set::Set [−][src]
Expand description
A fixed set implemented as a Map
where the value is ()
.
Examples
use fixed_map::{Key, Set}; #[derive(Clone, Copy, Key)] enum Part { One, Two, } #[derive(Clone, Copy, Key)] enum Key { Simple, Composite(Part), String(&'static str), Number(u32), Singleton(()), Option(Option<Part>), Boolean(bool), } let mut set = Set::new(); set.insert(Key::Simple); set.insert(Key::Composite(Part::One)); set.insert(Key::String("foo")); set.insert(Key::Number(1)); set.insert(Key::Singleton(())); set.insert(Key::Option(None)); set.insert(Key::Option(Some(Part::One))); set.insert(Key::Boolean(true)); assert!(set.contains(Key::Simple)); assert!(set.contains(Key::Composite(Part::One))); assert!(!set.contains(Key::Composite(Part::Two))); assert!(set.contains(Key::String("foo"))); assert!(!set.contains(Key::String("bar"))); assert!(set.contains(Key::Number(1))); assert!(!set.contains(Key::Number(2))); assert!(set.contains(Key::Singleton(()))); assert!(set.contains(Key::Option(None))); assert!(set.contains(Key::Option(Some(Part::One)))); assert!(!set.contains(Key::Option(Some(Part::Two)))); assert!(set.contains(Key::Boolean(true))); assert!(!set.contains(Key::Boolean(false)));
Implementations
impl<K> Set<K> where
K: Key<K, ()>,
[src]
impl<K> Set<K> where
K: Key<K, ()>,
[src]A map implementation that uses fixed storage.
Examples
use fixed_map::{Key, Set}; #[derive(Clone, Copy, Key)] enum Key { One, Two, } let mut m = Set::new(); m.insert(Key::One); assert_eq!(m.contains(Key::One), true); assert_eq!(m.contains(Key::Two), false);
use fixed_map::{Key, Set}; #[derive(Clone, Copy, Key)] enum Part { A, B, } #[derive(Clone, Copy, Key)] enum Key { Simple, Composite(Part), } let mut m = Set::new(); m.insert(Key::Simple); m.insert(Key::Composite(Part::A)); assert_eq!(m.contains(Key::Simple), true); assert_eq!(m.contains(Key::Composite(Part::A)), true); assert_eq!(m.contains(Key::Composite(Part::B)), false);
pub fn new() -> Set<K>
[src]
pub fn new() -> Set<K>
[src]Creates an empty Set
.
Examples
use fixed_map::{Key, Set}; #[derive(Clone, Copy, Key)] enum Key { One, Two, } let set: Set<Key> = Set::new();
pub fn iter(&self) -> Iter<K>ⓘ
[src]
pub fn iter(&self) -> Iter<K>ⓘ
[src]An iterator visiting all values in arbitrary order.
The iterator element type is K
.
Because of limitations in how Rust can express lifetimes through traits, this method will first pre-allocate a vector to store all references.
For a zero-cost version of this function, see Set::iter_fn
.
Examples
use fixed_map::{Key, Set}; #[derive(Debug, Clone, Copy, PartialEq, Eq, Key)] enum Key { One, Two, Three, } let mut map = Set::new(); map.insert(Key::One); map.insert(Key::Two); assert_eq!(map.iter().collect::<Vec<_>>(), vec![Key::One, Key::Two]);
pub fn contains(&self, key: K) -> bool
[src]
pub fn contains(&self, key: K) -> bool
[src]Returns true
if the set contains a value.
Returns a reference to the value corresponding to the key.
Examples
use fixed_map::{Key, Set}; #[derive(Clone, Copy, Key)] enum Key { One, Two, } let mut map = Set::new(); map.insert(Key::One); assert_eq!(map.contains(Key::One), true); assert_eq!(map.contains(Key::Two), false);
pub fn insert(&mut self, value: K) -> bool
[src]
pub fn insert(&mut self, value: K) -> bool
[src]Adds a value to the set.
If the set did not have this value present, true
is returned.
If the set did have this value present, false
is returned.
Examples
use fixed_map::{Key, Set}; #[derive(Clone, Copy, Key)] enum Key { One, Two, } let mut set = Set::new(); assert_eq!(set.insert(Key::One), true); assert_eq!(set.is_empty(), false); set.insert(Key::Two); assert_eq!(set.insert(Key::Two), false); assert_eq!(set.contains(Key::Two), true);
pub fn remove(&mut self, key: K) -> bool
[src]
pub fn remove(&mut self, key: K) -> bool
[src]Removes a value from the set. Returns true
if the value was
present in the set.
Examples
use fixed_map::{Key, Set}; #[derive(Clone, Copy, Key)] enum Key { One, Two, } let mut set = Set::new(); set.insert(Key::One); assert_eq!(set.remove(Key::One), true); assert_eq!(set.remove(Key::One), false);
pub fn clear(&mut self)
[src]
pub fn clear(&mut self)
[src]Clears the set, removing all values.
Examples
use fixed_map::{Key, Set}; #[derive(Clone, Copy, Key)] enum Key { One, Two, } let mut set = Set::new(); set.insert(Key::One); set.clear(); assert!(set.is_empty());
Trait Implementations
impl<'de, K> Deserialize<'de> for Set<K> where
K: Key<K, ()> + Deserialize<'de>,
[src]
impl<'de, K> Deserialize<'de> for Set<K> where
K: Key<K, ()> + Deserialize<'de>,
[src]fn deserialize<D>(deserializer: D) -> Result<Self, D::Error> where
D: Deserializer<'de>,
[src]
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error> where
D: Deserializer<'de>,
[src]Deserialize this value from the given Serde deserializer. Read more
impl<K> Eq for Set<K> where
K: Key<K, ()>,
K::Storage: Eq,
[src]
K: Key<K, ()>,
K::Storage: Eq,
Auto Trait Implementations
impl<K> RefUnwindSafe for Set<K> where
<K as Key<K, ()>>::Storage: RefUnwindSafe,
<K as Key<K, ()>>::Storage: RefUnwindSafe,
impl<K> Send for Set<K> where
<K as Key<K, ()>>::Storage: Send,
<K as Key<K, ()>>::Storage: Send,
impl<K> Sync for Set<K> where
<K as Key<K, ()>>::Storage: Sync,
<K as Key<K, ()>>::Storage: Sync,
impl<K> Unpin for Set<K> where
<K as Key<K, ()>>::Storage: Unpin,
<K as Key<K, ()>>::Storage: Unpin,
impl<K> UnwindSafe for Set<K> where
<K as Key<K, ()>>::Storage: UnwindSafe,
<K as Key<K, ()>>::Storage: UnwindSafe,
Blanket Implementations
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut T
[src]
pub fn borrow_mut(&mut self) -> &mut T
[src]Mutably borrows from an owned value. Read more
impl<T> ToOwned for T where
T: Clone,
[src]
impl<T> ToOwned for T where
T: Clone,
[src]type Owned = T
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn to_owned(&self) -> T
[src]Creates owned data from borrowed data, usually by cloning. Read more
pub fn clone_into(&self, target: &mut T)
[src]
pub fn clone_into(&self, target: &mut T)
[src]🔬 This is a nightly-only experimental API. (toowned_clone_into
)
recently added
Uses borrowed data to replace owned data, usually by cloning. Read more
impl<T> DeserializeOwned for T where
T: for<'de> Deserialize<'de>,
[src]
T: for<'de> Deserialize<'de>,