3 releases
0.1.2 | Jun 29, 2024 |
---|---|
0.1.1 | Jun 29, 2024 |
0.1.0 | Jun 27, 2024 |
#345 in Memory management
115 downloads per month
Used in ecs-tiny
7KB
71 lines
stack-any
A library that provides a type that owns same size type on the stack for type erasure.
Usage
let mut stacks = [
stack_any::stack_any!(Vec<i32>, vec![]),
stack_any::stack_any!(Vec<char>, vec![]),
];
stacks[0].downcast_mut::<Vec<i32>>().unwrap().push(5);
stacks[1].downcast_mut::<Vec<char>>().unwrap().push('x');
assert_eq!(stacks[0].downcast_ref(), Some(&vec![5]));
assert_eq!(stacks[1].downcast_ref(), Some(&vec!['x']));
lib.rs
:
stack-any
A library that provides a type that owns same size type on the stack for type erasure.
Usage
let mut stacks = [
stack_any::stack_any!(Vec<i32>, vec![]),
stack_any::stack_any!(Vec<char>, vec![]),
];
stacks[0].downcast_mut::<Vec<i32>>().unwrap().push(5);
stacks[1].downcast_mut::<Vec<char>>().unwrap().push('x');
assert_eq!(stacks[0].downcast_ref(), Some(&vec![5]));
assert_eq!(stacks[1].downcast_ref(), Some(&vec!['x']));