Я использую 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>;
}
В зависимости от того, где запущено приложение, я хочу разрешить различные типы, которые реализуют вышеупомянутую черту, но компилятор не устраивает, потому что, очевидно, черты с обобщениями не безопасны для объекта черты.
Какой идиоматический способ решения такой проблемы?