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

from_as

Traits and derive macros to Read and write types that implement serde Serialize and deserialize to files

3 unstable releases

0.2.0 Apr 6, 2023
0.1.1 Dec 22, 2021
0.1.0 Dec 13, 2020

#1823 in Encoding

Download history 489/week @ 2023-12-06 601/week @ 2023-12-13 357/week @ 2023-12-20 182/week @ 2023-12-27 516/week @ 2024-01-03 370/week @ 2024-01-10 709/week @ 2024-01-17 562/week @ 2024-01-24 397/week @ 2024-01-31 421/week @ 2024-02-07 443/week @ 2024-02-14 538/week @ 2024-02-21 309/week @ 2024-02-28 389/week @ 2024-03-06 401/week @ 2024-03-13 370/week @ 2024-03-20

1,554 downloads per month

MIT license

13KB
147 lines

from_as

Rust traits and derive macros for reading and writing files for types that implement serde.

Available on crates.io

from_as = "0.2.0"

This crate provides two traits: FromFile and AsFile. FromFile is used for getting types from a file. AsFile is used for writing types to a file.

The traits can be used for writing json, yaml, and toml files.

Example

    #[macro_use]
    extern crate serde;
    
    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();
    }

Dependencies

~2.3–3.5MB
~70K SLoC