Rust 为什么会出现错误;无法为已定义类型的板条箱之外的类型定义固有的“impl”;为类型别名编写impl时?

Rust 为什么会出现错误;无法为已定义类型的板条箱之外的类型定义固有的“impl”;为类型别名编写impl时?,rust,Rust,我希望实现typeOpResource的功能 type OpResource = Object<OC, Status>; impl OpResource { pub fn get_parameter_values(&self) -> Vec<ParameterValue> { self.spec .parameter_values .clone() .or_el

我希望实现type
OpResource
的功能

type OpResource = Object<OC, Status>;

impl OpResource {
    pub fn get_parameter_values(&self) -> Vec<ParameterValue> {
        self.spec
            .parameter_values
            .clone()
            .or_else(|| Some(vec![]))
            .unwrap()
    }
}
类型OpResource=Object;
植入操作资源{
发布fn获取参数值(&self)->Vec{
自我规范
.参数值
.clone()
.或| | |一些(vec![]))
.unwrap()
}
}
然后我犯了个错误

error[E0116]:无法为定义类型的板条箱之外的类型定义固有的'impl'
|
35 |/impl操作资源{
36 | |发布fn获取参数值(&self)->Vec{
37 | |自我规范
38 | |。参数值
...  |
42 | |     }
43 | | }
|| ^适用于板条箱外部定义的类型。
|
=注意:定义并实现特征或新类型

我不明白我哪里错了,我只是实现了类型下面的功能,为什么它说我出了机箱?

您好!我想你的问题已经有答案了。摘要:
类型
别名不会创建新类型;这只是一个别名。这意味着编写
impl
类似于为别名类型编写impl,并且要遵守以下规则。请让我们知道这是否回答了您的问题!无法为对象添加实现。您应该定义一个trait并定义一个trait实现。这不需要太多的工作,您主要需要添加方法声明。谢谢@卢卡斯·卡尔伯托蒂在那里!我想你的问题已经有答案了。摘要:
类型
别名不会创建新类型;这只是一个别名。这意味着编写
impl
类似于为别名类型编写impl,并且要遵守以下规则。请让我们知道这是否回答了您的问题!无法为对象添加实现。您应该定义一个trait并定义一个trait实现。这不需要太多的工作,您主要需要添加方法声明。谢谢@卢卡斯·卡尔伯托德