use super::DormantMutRef; | |
#[test] | |
fn test_borrow() { | |
let mut data = 1; | |
let mut stack = vec![]; | |
let mut rr = &mut data; | |
for factor in [2, 3, 7].iter() { | |
let (r, dormant_r) = DormantMutRef::new(rr); | |
rr = r; | |
assert_eq!(*rr, 1); | |
stack.push((factor, dormant_r)); | |
} | |
while let Some((factor, dormant_r)) = stack.pop() { | |
let r = unsafe { dormant_r.awaken() }; | |
*r *= factor; | |
} | |
assert_eq!(data, 42); | |
} |