Але, оп!

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>>();
}

Мейджик!

Пришлось узнать, что оно рефлексивно, сначала я это написал, а потом понял с чего вдруг оно работает. Магия компилятора...вуду...буууууууу. Блин.

Follow

Написал я конечно километровое, это просто пример. Который позволил мне по счастливой случайности не ввозить динамическую диспетчеризацию в код.

· · Web · 0 · 0 · 0
Sign in to participate in the conversation
MustUdon

I like Twitter, but, Mastodon it is so excited! Feel free to register it is server just for fun! Usefull links https://instances.social https://www.reddit.com/r/Mastodon/comments/yugh2o/some_useful_mastodon_lists/?utm_source=share&utm_medium=web2x&context=3