有没有办法在Rust中缩短通用类型的边界?
这是我不得不在很多结构体实现等代码中添加的繁琐内容:
pub struct IncomingClientMessageWithAddress<State, Msg>
where State: AppState + Clone + serde::Serialize + serde::de::DeserializeOwned + std::marker::Unpin + 'static,
Msg: AppEvent + Clone + serde::Serialize + serde::de::DeserializeOwned + std::marker::Unpin + 'static {
...
我基本上想做类似于这样的事情(我知道下面的内容对特性不起作用):
type MyStateAlias = AppState + Clone + serde::Serialize + serde::de::DeserializeOwned + std::marker::Unpin + 'static;
type MyEventAlias = AppEvent + Clone + serde::Serialize + serde::de::DeserializeOwned + std::marker::Unpin + 'static;
pub struct IncomingClientMessageWithAddress<State, Msg>
where State: MyStateAlias,
Msg: MyEventAlias {
...