Как вернуть объект черты с помощью универсальных методов? - PullRequest
1 голос
/ 26 июня 2019

Я использую 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>;
}

В зависимости от того, где запущено приложение, я хочу разрешить различные типы, которые реализуют вышеупомянутую черту, но компилятор не устраивает, потому что, очевидно, черты с обобщениями не безопасны для объекта черты.

Какой идиоматический способ решения такой проблемы?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...