我对 Rust 还很陌生,所以这可能是一个简单的问题。
我正在尝试为处理程序创建一个小型注册表,该注册表应该返回实现以下功能的任何结构TransferObject
Trait:
pub trait TransferObject: Hash + PartialEq {}
由于我将注册的处理程序存储在HashMap
该特质需要Hash
and PartialEq
作为超级特质:
pub struct RequestHandlerRegistry {
handlers: HashMap<RequestMethod, HashMap<String, RequestHandler<dyn TransferObject>>>,
}
但在结构中我得到了错误,那就是TransferObject
不能成为一个对象,因为PartialEq
使用参数Self
。
我已经尝试过做这样的事情:
pub struct RequestHandlerRegistry {
handlers: HashMap<RequestMethod, HashMap<String, RequestHandler<Box<dyn TransferObject>>>>,
}
但我仍然遇到同样的错误。
有什么办法可以解决这个问题吗?
我还创建了一个操场以便轻松重现错误。