Nums { ONE, TWO, THREE, }
impl From<u8> for Nums {
fn from(value: u8) -> Self { Self::ONE }
}
impl From<Nums> for u8 {
fn from(value: Nums) -> Self { 0 }
}
я не понимаю, это каким магическим образом в Nums появилась функцию Nums::from(T: Nums), если я прикрутил трейт для типа u8 и логично, что данная функция должно появиться у данного типа с последующем примером вызова: (1u8).from<Nums>(...), но так же логично, а что передавать в параметр при вызове from у u8 ....
К сожалению, нет понимания, если мы делаем реализацию
trait From<Nums> для типа u8, то по идее в u8 должны быть доступны данные функции для вызова.
Подскажите, пожалуйста, что это за магия такая?
Вызов через . работает только для Self
Обсуждают сегодня