如何使用泛型方法返回特征对象?

时间:2019-06-26 18:18:05

标签: generics rust traits

我正在使用yup_oauth2,并试图创建一个实现Token特性的GetToken源,以便在Google Compute Engine上使用。

pub trait GetToken {
    fn token<'b, I, T>(&mut self, scopes: I) -> Result<Token, Box<Error>>
    where
        T: AsRef<str> + Ord + 'b,
        I: IntoIterator<Item = &'b T>;

    fn api_key(&mut self) -> Option<String>;
}

根据应用程序在哪里运行,我想解析为实现上述特征的不同类型,但是编译器并不满意,因为带有泛型的特征显然对特征对象不安全。

解决这种问题的惯用方法是什么?

0 个答案:

没有答案