Struct matterdb::indexes::MapIndex[][src]

pub struct MapIndex<T: RawAccess, K: ?Sized, V> { /* fields omitted */ }

A map of keys and values. Access to the elements of this map is obtained using the keys.

MapIndex requires that keys implement the BinaryKey trait and values implement the BinaryValue trait.

Implementations

impl<T, K: ?Sized, V> MapIndex<T, K, V> where
    T: RawAccess,
    K: BinaryKey,
    V: BinaryValue
[src]

pub fn get(&self, key: &K) -> Option<V>[src]

Returns a value corresponding to the key.

Examples

use matterdb::{access::CopyAccessExt, TemporaryDB, Database, MapIndex};

let db = TemporaryDB::default();
let fork = db.fork();
let mut index = fork.get_map("name");
assert!(index.get(&1).is_none());

index.put(&1, 2);
assert_eq!(Some(2), index.get(&1));

pub fn contains(&self, key: &K) -> bool[src]

Returns true if the map contains a value corresponding to the specified key.

Examples

use matterdb::{access::CopyAccessExt, TemporaryDB, Database, MapIndex};

let db = TemporaryDB::default();
let fork = db.fork();
let mut index = fork.get_map("name");
assert!(!index.contains(&1));

index.put(&1, 2);
assert!(index.contains(&1));

pub fn iter(&self) -> Entries<'_, K, V>

Notable traits for Entries<'_, K, V>

impl<K: ?Sized, V> Iterator for Entries<'_, K, V> where
    K: BinaryKey,
    V: BinaryValue
type Item = (K::Owned, V);
[src]

Returns an iterator over the entries of the map in ascending order.

Examples

use matterdb::{access::CopyAccessExt, TemporaryDB, Database, MapIndex};

let db = TemporaryDB::default();
let fork = db.fork();
let index: MapIndex<_, u8, u8> = fork.get_map("name");

for v in index.iter() {
    println!("{:?}", v);
}

pub fn keys(&self) -> Keys<'_, K>

Notable traits for Keys<'_, K>

impl<K: ?Sized> Iterator for Keys<'_, K> where
    K: BinaryKey
type Item = K::Owned;
[src]

Returns an iterator over the keys of a map in ascending order.

Examples

use matterdb::{access::CopyAccessExt, TemporaryDB, Database, MapIndex};

let db = TemporaryDB::default();
let fork = db.fork();
let index: MapIndex<_, u8, u8> = fork.get_map("name");

for key in index.keys() {
    println!("{}", key);
}

pub fn values(&self) -> Values<'_, V>

Notable traits for Values<'_, V>

impl<V> Iterator for Values<'_, V> where
    V: BinaryValue
type Item = V;
[src]

Returns an iterator over the values of a map in ascending order of keys.

Examples

use matterdb::{access::CopyAccessExt, TemporaryDB, Database, MapIndex};

let db = TemporaryDB::default();
let fork = db.fork();
let index: MapIndex<_, u8, u8> = fork.get_map("name");

for val in index.values() {
    println!("{}", val);
}

pub fn iter_from(&self, from: &K) -> Entries<'_, K, V>

Notable traits for Entries<'_, K, V>

impl<K: ?Sized, V> Iterator for Entries<'_, K, V> where
    K: BinaryKey,
    V: BinaryValue
type Item = (K::Owned, V);
[src]

Returns an iterator over the entries of a map in ascending order starting from the specified key.

Examples

use matterdb::{access::CopyAccessExt, TemporaryDB, Database, MapIndex};

let db = TemporaryDB::default();
let fork = db.fork();
let index: MapIndex<_, u8, u8> = fork.get_map("name");

for v in index.iter_from(&2) {
    println!("{:?}", v);
}

pub fn keys_from(&self, from: &K) -> Keys<'_, K>

Notable traits for Keys<'_, K>

impl<K: ?Sized> Iterator for Keys<'_, K> where
    K: BinaryKey
type Item = K::Owned;
[src]

Returns an iterator over the keys of a map in ascending order starting from the specified key.

Examples

use matterdb::{access::CopyAccessExt, TemporaryDB, Database, MapIndex};

let db = TemporaryDB::default();
let fork = db.fork();
let index: MapIndex<_, u8, u8> = fork.get_map("name");

for key in index.keys_from(&2) {
    println!("{}", key);
}

pub fn values_from(&self, from: &K) -> Values<'_, V>

Notable traits for Values<'_, V>

impl<V> Iterator for Values<'_, V> where
    V: BinaryValue
type Item = V;
[src]

Returns an iterator over the values of a map in ascending order of keys starting from the specified key.

Examples

use matterdb::{access::CopyAccessExt, TemporaryDB, Database, MapIndex};

let db = TemporaryDB::default();
let fork = db.fork();
let index: MapIndex<_, u8, u8> = fork.get_map("name");
for val in index.values_from(&2) {
    println!("{}", val);
}

impl<T, K: ?Sized, V> MapIndex<T, K, V> where
    T: RawAccessMut,
    K: BinaryKey,
    V: BinaryValue
[src]

pub fn put(&mut self, key: &K, value: V)[src]

Inserts a key-value pair into a map.

Examples

use matterdb::{access::CopyAccessExt, TemporaryDB, Database, MapIndex};

let db = TemporaryDB::default();
let fork = db.fork();
let mut index = fork.get_map("name");

index.put(&1, 2);
assert!(index.contains(&1));

pub fn remove<Q: ?Sized>(&mut self, key: &Q) where
    K: Borrow<Q>,
    Q: BinaryKey
[src]

Removes a key from a map.

Examples

use matterdb::{access::CopyAccessExt, TemporaryDB, Database, MapIndex};

let db = TemporaryDB::default();
let fork = db.fork();
let mut index = fork.get_map("name");

index.put(&1, 2);
assert!(index.contains(&1));

index.remove(&1);
assert!(!index.contains(&1));

pub fn clear(&mut self)[src]

Clears a map, removing all entries.

Notes

Currently, this method is not optimized to delete a large set of data. During the execution of this method, the amount of allocated memory is linearly dependent on the number of elements in the index.

Examples

use matterdb::{access::CopyAccessExt, TemporaryDB, Database, MapIndex};

let db = TemporaryDB::default();
let fork = db.fork();
let mut index = fork.get_map("name");

index.put(&1, 2);
assert!(index.contains(&1));

index.clear();
assert!(!index.contains(&1));

Trait Implementations

impl<T: Debug + RawAccess, K: Debug + ?Sized, V: Debug> Debug for MapIndex<T, K, V>[src]

impl<T, K: ?Sized, V> FromAccess<T> for MapIndex<T::Base, K, V> where
    T: Access,
    K: BinaryKey,
    V: BinaryValue
[src]

impl<T, K: ?Sized, V> IndexIterator for MapIndex<T, K, V> where
    T: RawAccess,
    K: BinaryKey,
    V: BinaryValue
[src]

type Key = K

Type encompassing index keys.

type Value = V

Type encompassing index values.

impl<'a, T, K: ?Sized, V> IntoIterator for &'a MapIndex<T, K, V> where
    T: RawAccess,
    K: BinaryKey,
    V: BinaryValue
[src]

type Item = (K::Owned, V)

The type of the elements being iterated over.

type IntoIter = Entries<'a, K, V>

Which kind of iterator are we turning this into?

Auto Trait Implementations

impl<T, K: ?Sized, V> RefUnwindSafe for MapIndex<T, K, V> where
    K: RefUnwindSafe,
    T: RefUnwindSafe,
    V: RefUnwindSafe,
    <T as RawAccess>::Changes: RefUnwindSafe

impl<T, K: ?Sized, V> Send for MapIndex<T, K, V> where
    K: Send,
    T: Send,
    V: Send,
    <T as RawAccess>::Changes: Send

impl<T, K: ?Sized, V> Sync for MapIndex<T, K, V> where
    K: Sync,
    T: Sync,
    V: Sync,
    <T as RawAccess>::Changes: Sync

impl<T, K: ?Sized, V> Unpin for MapIndex<T, K, V> where
    K: Unpin,
    T: Unpin,
    V: Unpin,
    <T as RawAccess>::Changes: Unpin

impl<T, K: ?Sized, V> UnwindSafe for MapIndex<T, K, V> where
    K: UnwindSafe,
    T: UnwindSafe,
    V: UnwindSafe,
    <T as RawAccess>::Changes: UnwindSafe

Blanket Implementations

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

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

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

impl<T> From<T> for T[src]

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

impl<T> Pointable for T

type Init = T

The type for initializers.

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

type Error = Infallible

The type returned in the event of a conversion error.

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

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

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,