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]

fn fmt(&self, f: &mut Formatter<'_>) -> Result[src]

Formats the value using the given formatter. Read more

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

fn from_access(access: T, addr: IndexAddress) -> Result<Self, AccessError>[src]

Constructs the object at the given address. Read more

fn from_root(access: T) -> Result<Self, AccessError>[src]

Constructs the object from the root of the access. Read more

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.

fn index_iter(&self, from: Option<&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]

Continues iteration from the specified position. If from is None, starts the iteration from scratch. Read more

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?

fn into_iter(self) -> Self::IntoIter[src]

Creates an iterator from a value. Read more

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]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

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

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

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

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

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

pub fn from(t: T) -> T[src]

Performs the conversion.

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

pub fn into(self) -> U[src]

Performs the conversion.

impl<T> Pointable for T

pub const ALIGN: usize

The alignment of pointer.

type Init = T

The type for initializers.

pub unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more

pub unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more

pub unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more

pub unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more

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.

pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]

Performs the conversion.

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.

pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]

Performs the conversion.