Почему определение «корова» использует «как» в Owned ( :: Owned)? - PullRequest
0 голосов
/ 26 августа 2018

Вот как определяется Cow:

pub enum Cow<'a, B>
where
    B: 'a + ToOwned + ?Sized,
{
    Borrowed(&'a B),
    Owned(<B as ToOwned>::Owned),
}

Почему там B as ToOwned?Чтобы снять 'a и ?Sized границы?

1 Ответ

0 голосов
/ 26 августа 2018

Это просто явно через полный синтаксис . Он также мог бы быть определен как

pub enum Cow<'a, B>
where
    B: 'a + ToOwned + ?Sized,
{
    Borrowed(&'a B),
    Owned(B::Owned),
}

Этот синтаксис позволяет получить доступ к связанному типу реализации B ToOwned.

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