如何实现自定义结构的复制特征?

时间:2019-10-17 08:26:15

标签: struct rust traits

我有我的自定义结构-交易,我希望可以复制它。

  

此操作失败,因为Vec没有为任何T实现复制。E0204

如何实现复制到Vec和我的结构。我要求一个例子。

Playground

#[derive(PartialOrd, Eq, Hash)]
struct Transaction {
    transaction_id: Vec<u8>,
    proto_id: Vec<u8>,
    len_field: Vec<u8>,
    unit_id: u8,
    func_nr: u8,
    count_bytes: u8,
}

impl Copy for Transaction { }

impl Clone for Transaction {
    fn clone(&self) -> Transaction {
        *self
    }
}

impl PartialEq for Transaction {
    fn eq(&self, other: &Self) -> bool {
        self.unit_id == other.unit_id
            && self.func_nr == other.func_nr
            && self.count_bytes == other.count_bytes
    }
}

fn main() 
{
}

1 个答案:

答案 0 :(得分:-2)

我解决了这个问题: 我用过桌子[u8; 2]代替Vec。

但是我仍然不明白为什么不能在结构中使用向量并将其复制。

<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.6.10/vue.js"></script>
<div id="test">
  <button @click="clicktime">Click</button>
  <times-updated :times.sync="myData"></times-updated>
</div>