| Crates.io | typevec |
| lib.rs | typevec |
| version | 0.1.0 |
| created_at | 2016-11-12 10:19:07.361109+00 |
| updated_at | 2016-11-12 10:19:07.361109+00 |
| description | Rust Vec which can contain arbitrary types |
| homepage | |
| repository | https://github.com/sinhrks/rust-typevec |
| max_upload_size | |
| id | 7216 |
| size | 8,341 |
Rust Vec which can contain arbitrary types inrernally casts inputs to Box<UnsafeAny>.
let mut v = TypeVec::new();
assert!(v.is_empty());
// Can push whatever values.
v.push(1);
v.push(2.2);
v.push("xxx");
v.push(vec![1, 2, 3]);
// Give type hint to specify return type.
assert_eq!(v.get::<i32>(0), Some(&1));
assert_eq!(v.get::<f64>(1), Some(&2.2));
assert_eq!(v.get::<&str>(2), Some(&"xxx"));
assert_eq!(v.get::<Vec<i32>>(3), Some(&vec![1, 2, 3]));
// get_mut
assert_eq!(v.get_mut::<Vec<i32>>(3), Some(&mut vec![1, 2, 3]));
// pop
assert_eq!(v.pop::<Vec<i32>>(), Some(vec![1, 2, 3]));
assert_eq!(v.pop::<&str>(), Some("xxx"));
assert_eq!(v.pop::<f64>(), Some(2.2));
assert_eq!(v.pop::<i32>(), Some(1));