Я пытаюсь реализовать черту из ящика А для черты из ящика В с помощью статической отправки. Я обертываю чужую черту, но у меня возникают проблемы со строкой impl<T>
:
extern crate a;
extern crate b;
pub trait C: a::A {}
impl<T: C> b::B for T {}
Конечный результат, который я ищу, - это реализация b::B
для разработчиков черты C
, используя статическую диспетчеризацию.
Я получаю следующую ошибку:
error[E0210]: type parameter `T` must be used as the type parameter for some local type (e.g., `MyStruct<T>`)
--> c/src/lib.rs:3:1
|
3 | impl<T: C> b::B for T {}
| ^^^^^^^^^^^^^^^^^^^^^ type parameter `T` must be used as the type parameter for some local type
|
= note: only traits defined in the current crate can be implemented for a type parameter
Я могу обойти это с помощью динамической диспетчеризации - impl b::B for dyn C
- но хочучтобы сделать это с помощью статической диспетчеризации.
Я уже пробовал: