extern crate symtern;
fn main() {
{
use symtern::prelude::*;
use symtern::Pool;
use symtern::adaptors::Inline;
let mut basic_pool = Pool::<str,u16>::new();
let cat = basic_pool.intern("Kibbles").expect("Failed to intern the cat");
let mut inline_pool = Inline::<Pool<str, u64>>::new();
let dog = inline_pool.intern("Fido").expect("Failed to intern the dog");
assert_eq!(Ok("Kibbles"), basic_pool.resolve(cat));
assert_eq!(Ok("Fido"), inline_pool.resolve(&dog));
}
intern_with_error_handling().expect("we didn't actually expect an error here!");
resolve_with_error_handling().expect("we didn't actually expect an error here!");
resolve_unchecked().expect("we didn't actually expect an error here!");
}
type MyErrorType = symtern::Error;
use symtern::prelude::*;
use symtern::adaptors::Inline;
use symtern::{Pool, Result};
#[allow(unused_variables)]
fn intern_with_error_handling() -> Result<()> {
let mut some_interner = Inline::<Pool<str,u64>>::new();
let symbol = match some_interner.intern("Rosebud") {
Ok(sym) => sym,
Err(err) => return Err(MyErrorType::from(err)),
};
Ok(())
}
#[allow(unused_variables)]
fn resolve_with_error_handling() -> Result<()> {
let mut some_pool = Pool::<str,u8>::new();
let sym = some_pool.intern("abc").unwrap();
let s = match some_pool.resolve(sym) {
Ok(s) => s,
Err(err) => return Err(MyErrorType::from(err)),
};
Ok(())
}
fn resolve_unchecked() -> Result<()> {
let mut pool = Pool::<str, u8>::new();
let sym = try!(pool.intern("abc"));
assert_eq!("abc", unsafe { pool.resolve_unchecked(sym) });
Ok(())
}