2 个版本
0.1.1 | 2022年1月7日 |
---|---|
0.1.0 | 2022年1月7日 |
#1062 in 文本处理
每月 46 次下载
在 4 crates 中使用
42KB
994 代码行
Looking Glass
Looking Glass 为几乎任何 Rust 类型提供反射。这是通过一系列特性和类型擦除枚举来实现的。
该项目最近已开源,稍后将编写更好的文档。目前,查看该项目的最佳方式是克隆它并查看 Rust 文档。虽然该项目最近才开源,但它已经迭代到一个相对稳定的状态。我们不能保证 API 不会改变,尤其是出于好理由。但它目前满足 M10 的所有需求,因此不太可能发生重大变化。
示例
use looking_glass::Typed;
use looking_glass_derive::Instance;
#[derive(Instance, Clone, PartialEq)]
struct Foo {
text: String,
int: i32,
}
let test = Foo { text: "Test".to_string(), int: -2 };
let val = test.as_value();
let inst = val.as_reflected_struct().unwrap();
let value = inst.get_value("text").expect("field not found");
let text = value.as_ref().borrow::<&String>().expect("borrow failed");
assert_eq!(text, &test.text);
依赖项
~0.5–1MB
~21K SLoC