Але, оп!
pub struct Struct;
pub fn test<T>()
where
T: From<Struct>,
{
inner::<T>();
}
pub fn inner<T>() -> T
where
T: From<Struct>,
{
T::from(Struct)
}
fn main() {
test::<Struct>();
test::<Box<Struct>>();
}
Мейджик!
Але, оп! pub struct Struct; pub fn test<T>() pub fn inner<T>() -> T fn main() { Мейджик! 2 comments
Написал я конечно километровое, это просто пример. Который позволил мне по счастливой случайности не ввозить динамическую диспетчеризацию в код. |
Пришлось узнать, что оно рефлексивно, сначала я это написал, а потом понял с чего вдруг оно работает. Магия компилятора...вуду...буууууууу. Блин.