impl Drop for DropCounter { fn drop(&mutself) { self.drops.fetch_add(1, Ordering::Relaxed);
}
}
#[test] fn drop_cell() { let fooer = DropCounter::new(); let fooer_cl = fooer.clone();
{ let once_cell = SetOnce::new(); let prev = once_cell.set(fooer_cl);
assert!(prev.is_ok())
}
fooer.assert_num_drops(1);
}
#[test] fn drop_cell_new_with() { let fooer = DropCounter::new();
{ let once_cell = SetOnce::new_with(Some(fooer.clone()));
assert!(once_cell.initialized());
}
fooer.assert_num_drops(1);
}
#[test] fn drop_into_inner() { let fooer = DropCounter::new();
let once_cell = SetOnce::new();
assert!(once_cell.set(fooer.clone()).is_ok()); let val = once_cell.into_inner();
fooer.assert_num_drops(0);
drop(val);
fooer.assert_num_drops(1);
}
#[test] fn drop_into_inner_new_with() { let fooer = DropCounter::new();
let once_cell = SetOnce::new_with(Some(fooer.clone())); let val = once_cell.into_inner();
fooer.assert_num_drops(0);
drop(val);
fooer.assert_num_drops(1);
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.