Struct shawshank::Builder
[−]
[src]
pub struct Builder<O, I = usize> { /* fields omitted */ }
Flexible builder for Prison
.
use std::sync::Arc; let b1 = shawshank::Builder::<String>::new(); let mut p1 = b1.hash().unwrap(); assert_eq!(p1.intern("hello"), Ok(0)); assert_eq!(p1.resolve(0), Ok("hello")); let b2 = shawshank::Builder::<Arc<String>>::new(); let mut p2 = b2.solitary_hash().unwrap(); assert_eq!(p2.intern("hello"), Ok(0)); let s: &String = p2.resolve(0).unwrap(); assert_eq!(s.as_str(), "hello");
Methods
impl<O, I> Builder<O, I>
[src]
fn new() -> Self
impl<O, I> Builder<O, I> where O: StableAddress, I: Bounded + ToPrimitive + FromPrimitive
[src]
fn hash(&self) -> Result<Prison<O, I, HashMap<&'static O::Target, I>>, Error> where O::Target: Eq + Hash
Create an empty Prison
that uses a HashMap
.
fn btree(&self) -> Result<Prison<O, I, BTreeMap<&'static O::Target, I>>, Error> where O::Target: Eq + Ord
Create an empty Prison
that uses a BTreeMap
.
impl<O, I> Builder<O, I> where O: StableAddress, O::Target: 'static + StableAddress, O::Target::Target: 'static, I: Bounded + ToPrimitive + FromPrimitive
[src]
fn solitary_hash(&self)
-> Result<Solitary<O, O::Target, I, HashMap<&'static O::Target::Target, I>>, Error> where O::Target::Target: Eq + Hash
-> Result<Solitary<O, O::Target, I, HashMap<&'static O::Target::Target, I>>, Error> where O::Target::Target: Eq + Hash
Create an empty Solitary
that uses a HashMap
.
fn solitary_btree(&self)
-> Result<Solitary<O, O::Target, I, BTreeMap<&'static O::Target::Target, I>>, Error> where O::Target::Target: Eq + Ord
-> Result<Solitary<O, O::Target, I, BTreeMap<&'static O::Target::Target, I>>, Error> where O::Target::Target: Eq + Ord
Create an empty Solitary
that uses a BTreeMap
.