Я пытаюсь написать правильную подпись для метода, который принимает объект по ссылке в качестве входного.Предполагается, что объект является экземпляром структуры, которая реализует определенную черту.
impl MyStruct {
pub fn create_proof<E: Engine>(&self, C: &Circuit<E>, pk: &Parameters<E>) -> Proof<E> {
unimplemented!()
}
}
Circuit
определяется как черта, подобная этой trait Circuit<E: Engine>
, и внутри него реализован метод.
Когда я компилирую проект, я получаю сообщение об ошибке:
the trait `mylib::Circuit` cannot be made into an object
note: method `circuit_method` has generic type parameters
Почему возникла эта ошибка и как ее исправить?Мне не разрешено изменять все, что связано с mylib
, где находится черта Circuit
.Все, что мне разрешено делать, чтобы написать правильную подпись.Весь код проекта слишком большой и хитрый, я не думаю, что это хорошая идея, чтобы поделиться им.