1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
use locktree::locktree; locktree! { Main { m0: Mutex<()>, m1: Mutex<()>, } } fn main() { let locks = MainLockTree::new((), ()); let (_a, mut forward_a) = locks.lock_m0(); let _b = forward_a.lock_m1(); // Invalid let _ = forward_a.lock_m1(); }