diff --git a/examples/drop.rs b/examples/drop.rs new file mode 100644 index 0000000000000000000000000000000000000000..0de5383bda477694007e15f9bbeb86eb2d592d67 --- /dev/null +++ b/examples/drop.rs @@ -0,0 +1,21 @@ +use core::mem; +use poolman::PoolMan; + +static P: PoolMan<u32, 2> = PoolMan::new([0; 2]); +fn main() { + P.init(); + { + let e = P.alloc().unwrap(); + println!("e {}", *e); + mem::drop(e); + let mut e1 = P.alloc().unwrap(); + println!("e1 {}", *e1); + *e1 = 2; + println!("e1 {}", *e1); + + let e2 = P.alloc().unwrap(); + println!("e2 {}", *e2); + } + let e = P.alloc().unwrap(); + println!("e {}", *e); +} diff --git a/examples/usage.rs b/examples/usage.rs new file mode 100644 index 0000000000000000000000000000000000000000..a7268d07973c95c1bdba5ddf9f2a106d80f961a1 --- /dev/null +++ b/examples/usage.rs @@ -0,0 +1,31 @@ +use core::mem; +use poolman::PoolMan; + +#[derive(Debug)] +struct IDrop(u32); + +impl core::ops::Drop for IDrop { + fn drop(&mut self) { + println!("drop value: {}", self.0); + } +} + +static P: PoolMan<IDrop, 2> = PoolMan::new([IDrop(10), IDrop(11)]); + +fn main() { + P.init(); + { + let e = P.alloc().unwrap(); + println!("e {:?}", *e); + mem::drop(e); + let mut e1 = P.alloc().unwrap(); + println!("e1 {:?}", *e1); + *e1 = IDrop(2); + println!("e1 {:?}", *e1); + + let e2 = P.alloc().unwrap(); + println!("e2 {:?}", *e2); + } + let e = P.alloc().unwrap(); + println!("e {:?}", *e); +}