Skip to main content

rumtk_cache_get

Macro rumtk_cache_get 

Source
macro_rules! rumtk_cache_get {
    ( $cache:expr, $key:expr ) => { ... };
}
Expand description

Retrieves the cached item in immutable mode.

use rumtk_core::{rumtk_cache_fetch, rumtk_cache_push, rumtk_cache_get};
use rumtk_core::cache::{new_cache, LazyRUMCache, cache_push, cache_get};
use std::sync::Arc;
use rumtk_core::core::RUMResult;

type StringCache = LazyRUMCache<String, Vec<String>>;

fn init_cache(k: &String) -> RUMResult<Vec<String>> {
   Ok(vec![])
}

let mut cache: StringCache = new_cache();
static DEFAULT_VEC: Vec<String> = vec![];

let test_key: String = String::from("Hello World");
let test_value: Vec<String> = vec![String::from("?????")];

rumtk_cache_fetch!(
    &raw mut cache,
    &test_key,
    || {init_cache(&test_key)}
);

rumtk_cache_push!(
    &raw mut cache,
    &test_key,
    test_value.clone()
);

let v = rumtk_cache_get!(
    &raw mut cache,
    &test_key
).unwrap();

assert_eq!(test_value.get(0).unwrap(), v.get(0).unwrap(), "The inserted key is not the same to what was passed as input!");