4个版本

使用旧的Rust 2015

0.1.3 2018年12月2日
0.1.2 2018年11月30日
0.1.1 2018年11月30日
0.1.0 2018年11月30日

#derive-deserialize 中排名 63

Download history 38/week @ 2024-03-12 22/week @ 2024-03-19 24/week @ 2024-03-26 47/week @ 2024-04-02 24/week @ 2024-04-09 20/week @ 2024-04-16 25/week @ 2024-04-23 19/week @ 2024-04-30 23/week @ 2024-05-07 22/week @ 2024-05-14 26/week @ 2024-05-21 15/week @ 2024-05-28 22/week @ 2024-06-04 19/week @ 2024-06-11 25/week @ 2024-06-18 18/week @ 2024-06-25

每月下载量 88
5 包中使用(直接使用4个)

MIT 许可证 MIT

3KB

from_file 构建状态

这是一个简单的便利功能,可以直接从文件路径反序列化Rust结构体或枚举。

它可以帮助您避免将字符串转换为文件路径,尝试读取内容并反序列化。它是一个围绕 serde 的包装器,因此您可以使用您通常所有功能 👍

链接

示例

#[derive(Deserialize, FromFile, Debug, PartialEq)]
struct Person {
    name: String,
    age: usize
}

// Now `Person` has a `from_file()` method that will read a file from
// disk and automatically attempt to deserialize it 👌
let p = Person::from_file("test/fixtures/person.json").expect("file -> Person");

println!("hey {}!", p.name);

包含导入和错误处理的完整示例

#[macro_use]
extern crate serde_derive;

#[macro_use]
extern crate from_file_derive;
extern crate from_file;

use from_file::FromFile;

#[derive(Deserialize, FromFile, Debug, PartialEq)]
struct Person {
    name: String,
    age: usize
}

fn main() {
    match Person::from_file("test/fixtures/person.json") {
        Ok(p) => println!("Got a Person from a file!"),
        Err(e) => eprintln!("{}", e)
    }
}

lib.rs:

此宏启用 derive(FromFile),应与 from_file 一起使用

示例

#[macro_use]
extern crate serde_derive;
extern crate serde;

#[macro_use]
extern crate from_file_derive;
extern crate from_file;

use from_file::FromFile;

#[derive(Deserialize, FromFile)]
struct Person {
    name: String
}

fn main() {
    let path = "test/fixtures/person.json";
    let person = Person::from_file(path).expect("deserialize from file");
    assert_eq!(person.name, String::from("Shane"));
}

依赖项

约2MB
约46K SLoC