#projection #field #proj #project

nightly field-project

为所有类型提供字段投影!

1 个不稳定版本

0.1.0 2022年2月22日

#6#proj

MIT 许可证

7KB
100

field-project

为所有类型提供泛型投影!这个包通过添加 Project 特性和 proj! 宏到 Rust 中的所有类型来支持投影。无需 derive!

use std::pin::Pin;
use field_project::proj;

struct Foo {
    a: i32,
    b: &'static str,
}

fn main() {
    let foo = Box::pin(Foo { a: 42, b: "hello, world" });

    let a: Pin<_> = proj!(foo.a);
    let b = proj!(foo.b);

    println!("a: {:?}, b: {:?}", a, b);
}

无运行时依赖