对应的 Rust 的一个功能吧, Traits: Defining Shared Behavior - The Rust Programming Language 没试出来怎么写, 不知道是否有支持?
我个人用例当中会把一些公共的胶水代码放在 trait 上, 这样避免每个 struct 实现的时候重复写代码, 一个场景:
或者是否有可以替代的方案?
对应的 Rust 的一个功能吧, Traits: Defining Shared Behavior - The Rust Programming Language 没试出来怎么写, 不知道是否有支持?
我个人用例当中会把一些公共的胶水代码放在 trait 上, 这样避免每个 struct 实现的时候重复写代码, 一个场景:
或者是否有可以替代的方案?
pub trait Trait {
default() -> Int
add(Self,Self) -> Self
}
impl Trait with default() {
0
}
看起来文档把这个特性漏了
再问下怎样在语法中间加上 ToJson
的约束呢?
/// implement this on data which creates effect
pub trait RespoEffect {
turn_effect(Self) -> RespoEffectBox
make_handler(Self) -> (RespoEffectType, @web_sys.Node) -> Unit
}
impl RespoEffect with turn_effect(self) -> RespoEffectBox {
{ args: self.to_json(), handler: (self as RespoEffect).make_handler() }
}
25 │ { args: self.to_json(), handler: (self as RespoEffect).make_handler() }
│ ───┬───
│ ╰───── Type Self has no method to_json.
我是不是试出来了:
pub trait RespoEffect: ToJson {...}
通过这个来约束.