如何手动实现包含字符串的结构的复制特征?

时间:2019-11-19 22:33:25

标签: rust

我正在尝试为包含Copy的结构实现String特性。但是,我在查找相关文档时遇到了一些麻烦。

这就是我所拥有的:

pub struct Token {
    pub token: String,
    pub tok_type: AnotherStruct, // implements Copy/Clone already
}

impl Copy for Token { }

拒绝编译,指出我无法为类型Copy实现特征String

我将impl更改为:

impl Copy for Token {
    fn copy(&self) -> Token {
        Token { token: self.token.clone(), tok_type: self.tok_type, }
    }
}

并获得:

error[E0407]: method `copy` is not a member of trait `Copy`
  --> src/types.rs:18:5
   |
18 | /     fn copy(&self) -> Token {
19 | |         Token {
20 | |             token: self.token.clone(),
21 | |             tok_type: self.tok_type,
22 | |         }
23 | |     }
   | |_____^ not a member of trait `Copy`

error[E0204]: the trait `Copy` may not be implemented for this type
  --> src/types.rs:17:6
   |
13 |     pub token: String,
   |     ------------------ this field does not implement `Copy`
...
17 | impl Copy for Token {
   |      ^^^^

0 个答案:

没有答案