#mutable #observer #observable

mutable_derive

为Mutable和Softeq实现的derive功能

7个版本

0.3.3 2023年4月8日
0.3.2 2023年4月8日
0.2.1 2022年10月18日
0.2.0 2022年9月3日
0.1.0 2022年8月18日

#observable中排名29

Download history 42/week @ 2024-07-01 28/week @ 2024-07-22

每月下载量70
mutable中使用

Apache-2.0

12KB
194

Mutable

Mutable是一个用于跟踪结构变化的开源软件包
它目前仍处于开发中

以下是一个简单的示例

use mutable::Mutable;
use mutable_derive::Mutable;

#[derive(Mutable)]
struct Simple {
    size: usize,
}

#[derive(Mutable)]
struct Complex {
    id: String,
    value: Simple,
}

fn main() {
    let mut c0 = Complex { id: "a".to_string(), value: Simple { size: 32 } };
    let c1 = Complex { id: "b".to_string(), value: Simple { size: 64 } };

    assert_eq!(c0.update(c1), vec![
        ComplexMutation::Id(("a".to_string(), "b".to_string())),
        ComplexMutation::Value(SimpleMutation::Size((32, 64)))
    ]);
}

lib.rs:

仅包含derive宏的crate

依赖项

~1.5MB
~37K SLoC