[][src]Struct fixed_map::set::Set

pub struct Set<K> where
    K: Key<K, ()>, 
{ /* fields omitted */ }

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]

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> PartialEq<Set<K>> for Set<K> where
    K: Key<K, ()>,
    K::Storage: PartialEq
[src]

#[must_use]
fn ne(&self, other: &Rhs) -> bool
1.0.0
[src]

This method tests for !=.

impl<K> Eq for Set<K> where
    K: Key<K, ()>,
    K::Storage: Eq
[src]

impl<K> Clone for Set<K> where
    K: Key<K, ()>,
    K::Storage: Clone
[src]

fn clone_from(&mut self, source: &Self)
1.0.0
[src]

Performs copy-assignment from source. Read more

impl<K> Default for Set<K> where
    K: Key<K, ()>, 
[src]

impl<K> Debug for Set<K> where
    K: Key<K, ()> + Debug
[src]

Auto Trait Implementations

impl<K> Send for Set<K> where
    <K as Key<K, ()>>::Storage: Send

impl<K> Sync for Set<K> where
    <K as Key<K, ()>>::Storage: Sync

Blanket Implementations

impl<T, U> Into for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

impl<T> From for T
[src]

impl<T, U> TryFrom for T where
    T: From<U>, 
[src]

type Error = !

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

impl<T> Borrow for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T, U> TryInto for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

impl<T> BorrowMut for T where
    T: ?Sized
[src]