[−][src]Struct fixed_map::set::Set
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)));
Methods
impl<K> Set<K> where
K: Key<K, ()>,
[src]
K: Key<K, ()>,
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]
Creates an empty Set
.
Examples
use fixed_map::{Key, Set}; #[derive(Clone, Copy, Key)] enum Key { One, Two, } let set: Set<Key> = Set::new();
ⓘImportant traits for Iter<K>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]
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]
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]
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]
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());
pub fn is_empty(&self) -> bool
[src]
Returns true if the set contains no elements.
Examples
use fixed_map::{Key, Set}; #[derive(Clone, Copy, Key)] enum Key { One, Two, } let mut set = Set::new(); assert!(set.is_empty()); set.insert(Key::One); assert!(!set.is_empty());
pub fn len(&self) -> usize
[src]
Returns the number of elements in the set.
Examples
use fixed_map::{Key, Set}; #[derive(Clone, Copy, Key)] enum Key { One, Two, } let mut set = Set::new(); assert_eq!(set.len(), 0); set.insert(Key::One); assert_eq!(set.len(), 1);
Trait Implementations
impl<K> Clone for Set<K> where
K: Key<K, ()>,
K::Storage: Clone,
[src]
K: Key<K, ()>,
K::Storage: Clone,
impl<K> Default for Set<K> where
K: Key<K, ()>,
[src]
K: Key<K, ()>,
impl<K> Eq for Set<K> where
K: Key<K, ()>,
K::Storage: Eq,
[src]
K: Key<K, ()>,
K::Storage: Eq,
impl<K> PartialEq<Set<K>> for Set<K> where
K: Key<K, ()>,
K::Storage: PartialEq,
[src]
K: Key<K, ()>,
K::Storage: PartialEq,
impl<K> Debug for Set<K> where
K: Key<K, ()> + Debug,
[src]
K: Key<K, ()> + Debug,
Auto Trait Implementations
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,
impl<K> RefUnwindSafe for Set<K> where
<K as Key<K, ()>>::Storage: RefUnwindSafe,
<K as Key<K, ()>>::Storage: RefUnwindSafe,
Blanket Implementations
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> From<T> for T
[src]
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,