Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- fn main() {
- let preloaded = RefCell::new(Cache::new(|x| {
- println!(" -> preload({})", x);
- format!("{} - preloaded", x)
- }));
- let parsed = RefCell::new(Cache::new( |x| {
- let mut preloaded = preloaded.borrow_mut();
- let xp = preloaded.get(x);
- println!(" -> parsed({})", x);
- format!("{} - parsed", xp)
- }));
- let processed = RefCell::new(Cache::new(|x| {
- let mut parsed = parsed.borrow_mut();
- let xp = parsed.get(x);
- println!(" -> process({})", x);
- format!("{} - processed", xp)
- }));
- println!("{}", preloaded.borrow_mut().get("A"));
- println!("{}", processed.borrow_mut().get("B"));
- println!("{}", preloaded.borrow_mut().get("A"));
- println!("{}", parsed.borrow_mut().get("B"));
- }
- /* Run results:
- -> preload(A)
- A - preloaded
- -> preload(B)
- -> parsed(B)
- -> process(B)
- B - preloaded - parsed - processed
- A - preloaded
- B - preloaded - parsed
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement