Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rust 如何传递已实现特定特性的结构实例?_Rust - Fatal编程技术网

Rust 如何传递已实现特定特性的结构实例?

Rust 如何传递已实现特定特性的结构实例?,rust,Rust,我正在尝试为一个方法编写一个正确的签名,该方法通过引用将对象作为输入。假设对象是实现某个特性的结构的实例 impl MyStruct { pub fn create_proof<E: Engine>(&self, C: &Circuit<E>, pk: &Parameters<E>) -> Proof<E> { unimplemented!() } } 为什么会发生此错误以及如何修复它

我正在尝试为一个方法编写一个正确的签名,该方法通过引用将对象作为输入。假设对象是实现某个特性的结构的实例

impl MyStruct {
    pub fn create_proof<E: Engine>(&self, C: &Circuit<E>, pk: &Parameters<E>) -> Proof<E> {
        unimplemented!()
    }
}

为什么会发生此错误以及如何修复它?我不允许修改绑定到trait
电路
所在的
mylib
的所有内容。我所能做的就是写正确的签名。该项目的整个代码太庞大和复杂,我认为共享它不是一个好主意。

尝试将实现
电路的结构也作为泛型:

pub fn create_proof<C, E>(&self, c: &C, pk: &Parameters<E>) -> Proof<E>
where
    C: Circuit<E>,
    E: Engine,
{
    unimplemented!()
}
pub fn创建证明(&self,c:&c,pk:&Parameters)->proof
哪里
C:电路,
E:发动机,
{
未执行!()
}

尝试使实现
回路的结构也成为通用类型:

pub fn create_proof<C, E>(&self, c: &C, pk: &Parameters<E>) -> Proof<E>
where
    C: Circuit<E>,
    E: Engine,
{
    unimplemented!()
}
pub fn创建证明(&self,c:&c,pk:&Parameters)->proof
哪里
C:电路,
E:发动机,
{
未执行!()
}

请查看如何创建一个,然后查看您的问题以将其包括在内。我们无法说出代码中存在哪些板条箱、类型、特征、字段等。例如,
MyStruct
引擎
参数
证明
都是未定义的。如果不需要它们来重现问题,请删除它们。否则,将它们最小化并提供它们。试着制造一些能再现你在网络上的错误的东西,或者你可以在一个全新的货运项目中再现它。“还有。”谢普马斯特谢谢你提供的信息。但我发现我的问题很清楚,可以理解和回答。简短而明显的问题比完整而复杂的问题好。结果,我得到了快速而满意的回答。无需向Stackoverflow收取过多费用。@Formal但请不要回滚编辑,因为编辑是有原因的,例如,
不是有效的锈迹代码,也不需要(省去点也可以,何必麻烦使用点)。其次,可以将
/…
作为方法内容编写,但
未实现!()
正是为了这个目的。接下来,由于某种原因,
标记也在那里。请避免再次回滚。@hellow在这个评论之后,我假设您确切地知道
标记是如何工作的-也就是说
none
使用分配给标记的语言,而
lang none
使用的语言none可能正是您在本文中想要的case@msrd0你说得对,但是由于没有语法突出显示,它将与lang none
做相同的事情。从技术上说你是对的。请随时更正帖子。请回顾如何创建一个新的,然后你的问题,包括它。我们无法说出代码中存在哪些板条箱、类型、特征、字段等。例如,
MyStruct
引擎
参数
证明
都是未定义的。如果不需要它们来重现问题,请删除它们。否则,将它们最小化并提供它们。试着制造一些能再现你在网络上的错误的东西,或者你可以在一个全新的货运项目中再现它。“还有。”谢普马斯特谢谢你提供的信息。但我发现我的问题很清楚,可以理解和回答。简短而明显的问题比完整而复杂的问题好。结果,我得到了快速而满意的回答。无需向Stackoverflow收取过多费用。@Formal但请不要回滚编辑,因为编辑是有原因的,例如,
不是有效的锈迹代码,也不需要(省去点也可以,何必麻烦使用点)。其次,可以将
/…
作为方法内容编写,但
未实现!()
正是为了这个目的。接下来,由于某种原因,
标记也在那里。请避免再次回滚。@hellow在这个评论之后,我假设您确切地知道
标记是如何工作的-也就是说
none
使用分配给标记的语言,而
lang none
使用的语言none可能正是您在本文中想要的case@msrd0你说得对,但是由于没有语法突出显示,它将与lang none
做相同的事情。从技术上说你是对的。请随意更正帖子。