#serde-derive #traits #read-write #type #deserialize #macro #reading

derive_from_as

读取和写入实现serde Serialize和deserialize到文件的类型特征的特质

3个不稳定版本

0.2.0 2023年4月6日
0.1.1 2021年12月22日
0.1.0 2020年12月13日

#62 in #serde-derive

Download history 394/week @ 2024-03-13 503/week @ 2024-03-20 411/week @ 2024-03-27 498/week @ 2024-04-03 465/week @ 2024-04-10 539/week @ 2024-04-17 417/week @ 2024-04-24 558/week @ 2024-05-01 370/week @ 2024-05-08 329/week @ 2024-05-15 401/week @ 2024-05-22 409/week @ 2024-05-29 246/week @ 2024-06-05 253/week @ 2024-06-12 333/week @ 2024-06-19 213/week @ 2024-06-26

1,070 每月下载量
from_as 中使用

MIT 许可证

16KB
249 代码行

from_as crate的衍生宏

该crate旨在作为from_as crate的一部分使用,也可能单独按预期工作。

请使用https://crates.io/crates/from_as

from_as

Rust为实现serde的类型提供读取和写入文件的衍生宏。这些衍生宏实现了from_as_file特质。

from_as_file crate提供了两个特质:FromFile和AsFile。FromFile用于从文件获取类型。AsFile用于将类型写入文件。

derive_from_as crate提供了具有相同名称的这些特质的衍生宏。

目前,可以使用的文件类型仅限于json、yaml和toml。

示例

    #[macro_use]
    extern crate serde_derive;
    use std::io::{Read, Write};
    use std::convert::TryFrom;
    use from_as::*;

    #[derive(Debug, Deserialize, Serialize, AsFile, FromFile)]
    struct Attribute {
        name: String,
    }
    
    fn main() {
        let attr = Attribute { 
            name: "attr_name".into()
        };
        
        // Write to the example directory.
        attr.as_file("./examples/attr.json").unwrap();
        
        let attr = Attribute::from_file("./examples/attr.json").unwrap();
        println!("{:#?}", attr);
        
        // For writing a prettified version.
        attr.as_file_pretty("./examples/attr.json").uwnrap();
    }

依赖项

~2.3–3MB
~69K SLoC