#包含 #类型 #输入 #推送

typevec

Rust 的 Vec,可以包含任意类型

1 个不稳定版本

使用旧的 Rust 2015

0.1.0 2016年11月12日

#包含 中排名第 30

自定义许可

7KB
166 行(不含注释)

typevec

typevec 是一个 Rust Vec,可以内部将输入转换为 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));

lib.rs:

typevec 是一个 Rust Vec,可以内部将输入转换为 Box<UnsafeAny>

依赖

~13KB