1 个不稳定版本
0.1.0 | 2019年5月20日 |
---|
#27 in #contain
6KB
静态列表
静态定义的列表,可能包含混合类型的数据,并且可以迭代(生成 &dyn Trait 引用)
基本使用示例
use static_list::*;
use std::marker::PhantomData;
use std::fmt::Debug;
#[derive(Debug)]
struct Person {
name: String,
age: u32
}
struct Demo<'a> {
pub t: static_list_type![&'a Debug; u8, &'static str, [u32; 4], Person],
_m: PhantomData<&'a u32>
}
impl <'a> Demo<'a> {
pub fn new() -> Self {
Self {
t: static_list![1, "It is a string", [1,2,3,4], Person { name: "Andrey".into(), age: 30 }],
_m: Default::default(),
}
}
}
fn main() {
let demo = Demo::new();
println!("{:?}", demo.t.iter().collect::<Vec<_>>());
}
nightly 版本需要,因为使用了来自 std::marker::Unsize
的 unsize
功能