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
每月下载量 88
在 5 个 包中使用(直接使用4个)
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