1个不稳定版本
0.1.0 | 2022年3月6日 |
---|
#2971 在 Rust模式
8KB
106 行
ref-view
一个派生宏,用于生成结构体某些字段的“视图”。
用法
动机:轻松生成一个具有引用另一个结构体的字段的“查看器”结构体。
示例输入
#[derive(RefView)]
struct DataStruct {
field0: f64,
field1: u64,
field2: isize,
field3: Vec<Box<usize>>,
}
这将(大致)生成以下代码
pub struct DataStructViewer<'a> {
pub field0: &'a f64,
pub field1: &'a u64,
pub field2: &'a isize,
pub field3: &'a Vec<Box<usize>>,
}
impl<'a> RefView<'a> for DataStruct {
type Viewer = DataStructViewer<'a>;
fn view(&'a self) -> Self::Viewer
where
Self::Viewer: 'a,
{
Self::Viewer {
field0: &self.field0,
field1: &self.field1,
field2: &self.field2,
field3: &self.field3,
}
}
}
可以使用RefViewMut
生成可变引用结构体。
计划特性
- 使一些字段可跳过或通过字段属性包含它们
- 对生成的结构体可见性的更多控制
许可证
根据您的选择,受Apache License 2.0或MIT许可证的许可。
除非您明确声明,否则您提交的任何有意包含在此软件包中的贡献,根据Apache-2.0许可证定义,应如上双重许可,不附加任何其他条款或条件。
依赖项
~1.5MB
~35K SLoC