Trait`Cobodable`是私人的

时间:2015-03-18 12:24:49

标签: rust

我在制作通用InMemoryColumn<T>序列化时遇到问题。它抱怨说'Encodable&#39;和“可解码的&#39;特质是私人的,但我认为它是公开的here。如何实现这些特征,以便对基础Vec<T>进行编码和解码。

这里是带导入的代码:

extern crate bincode;
extern crate libc;
extern crate "rustc-serialize" as rustc_serialize;

use rustc_serialize::serialize::{Encodable,Decodable};
//import other libs

pub struct InMemoryColumn<T> {
    name: String,
    data: Vec<T>,
}

impl<T: Eq + Ord + Hash + Encodable + Decodable> InMemoryColumn<T> {
    fn save(&self, tbl_name: &str) {
        //encode self.data and write to disk 
    }

    fn load(path: &str, name: &str) -> Result<InMemoryColumn<T>,String> {
        //decode from disk and populate InMemoryColumn<T>
    }
}

1 个答案:

答案 0 :(得分:6)

EncodableDecodable特征仅相对于serialize模块公开。 That module is private though。正如您在mod.rs file中看到的那样,EncodableDecodable会直接在rustc_serialize包中重新导出。因此,您可以使用EncodableDecodable特征,如下所示:

use rustc_serialize::{Encodable,Decodable};