我有以下结构可以正常工作:
pub struct Pattern {
pub regex: &'static str,
pub view: Fn (Request) -> Response,
}
但是我想更改view
以接受任何实现Renderable
的类型(特征约束)。我期待以这种方式工作:
pub struct Pattern {
pub regex: &'static str,
pub view: Fn <T: Renderable> (Request) -> T,
}
但没有运气。有什么想法吗?
答案 0 :(得分:1)
您希望在结构(以及该结构的任何实现)上使用where
子句:
trait A { fn moo(&self); }
struct S;
struct Pattern<T>
where T: A
{
view: Fn (T) -> S,
}
fn main() {}