3 个版本

0.1.12 2023年10月8日
0.1.11 2023年9月28日
0.1.10 2023年9月24日

#923 in 解析器实现

每月 32 次下载

MIT 许可证

18KB
271

dynp

codecov

一个强调使用 Newtype 模式的动态、类型安全的属性系统。

💡 灵感来源

这个库受到了 iZotope/glassproperties C++ 库的启发;向那个库的出色作者致以最高的敬意。

📦 特性

  • 属性集合
  • 属性赋值
  • 属性检索
  • 属性订阅(带有回调/闭包)

👨‍💻 使用方法

以下代码片段应该能给你这个库的基本概念。

use dynp::PropertyCollection;

// define a custom property using the Newtype pattern
#[derive(Copy, Clone, Debug)]
struct CustomProperty(i32);

fn main() {
    // create a new property collection
    let mut collection = PropertyCollection::new();

    // assign a new property
    collection.assign(CustomProperty(42));

    // get the property
    match collection.get::<CustomProperty>() {
       Some(prop) => {
          println!("Property: {:?}", prop);
        },
        None => {
            println!("Property does not exist");
        }
    };
}

🚧 路线图

  • 属性反序列化
  • 性能测试和改进
  • 改进文档

无运行时依赖