如何通过Rust中的赋值运算符收听和响应变量突变?

问题描述

某些操作具有可以在调用操作时有效响应的特征,如下所示:

use std::ops;

#[derive(Debug)]
struct MyNum(u32);

impl ops::Add for MyNum {
    type Output = Self;

    fn add(self,b: Self) -> Self {
        println!("Added {} and {}",self.0,b.0);
        MyNum(self.0 + b.0)
    }
}

fn main() {
    let a = MyNum(1);
    let b = MyNum(2);
    let c = a + b;
    println!("C = {}",c.0);
}

但是,作为docs状态:

由于赋值运算符(=)没有支持特征,因此无法重载其语义

我希望能够通过赋值运算符监听值何时发生变化。这个想法是要开发类似于Svelte library的东西,但要用Rust。捕获变量突变的最佳方法是什么?理想情况下,在编译阶段保留所有开销?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)