Appearance
5.7 trait 别名
跟 type alias 类似的,trait 也可以起别名(trait alias)。假如在某些场景下,我们有一个比较复杂的 trait:
rust
pub trait Service {
type Request;
type Response;
type Error;
type Future: Future<Item=Self::Response, Error=Self::Error>;
fn call(&self, req: Self::Request) -> Self::Future;
}
每次使用这个 trait 的时候都需要携带一堆的关联类型参数。为了避免这样的麻烦,在已经确定了关联类型的场景下,我们可以为它取一个别名,比如:
rust
trait HttpService = Service<Request = http::Request,
Response = http::Response,
Error = http::Error>;