#list #traits #data #static #statically #defined #contain

nightly static-list

静态定义的列表,可能包含混合类型的数据,并且可以迭代(生成 &dyn Trait 引用)

1 个不稳定版本

0.1.0 2019年5月20日

#27 in #contain

MIT/Apache

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::Unsizeunsize 功能

无运行时依赖