如何更改自定义类型的Serde行为

问题描述

如何更改Serde与对象交互的方式?

我的目标是要拥有服务器观察值的结构:

pub trait Observable<T,O> {

    fn get(&self) -> &T;
    fn get_mut(&mut self) -> &mut T;
    fn set(&mut self,new_value: T);
    fn observe(&mut self,observer: O);

}

pub struct Observed<T> {

}

// impl Observed for Observable...

struct SomeStateStore {
    pub pin_a_state: Observed<bool>,pub pin_b_state: Observed<bool>,pub pin_c_state: Observed<bool>,pub pin_d_state: Observed<bool>,pub some_other_state: Observed<i32>,}

目标是能够相互连接状态并在值发生更改时触发该行为,例如使用休息电话。

我的问题是我也想使用serde存储/加载此数据。有没有一种方法可以使Serde看到我对T的暗示中的Observed<T>?我之前曾对Serde进行过调查,但对我而言(仍然是生锈的铁罐),很难理解。

解决方法

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

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

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