Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/shakyshane/from_file
A simple convenience to deserialize a rust Struct or Enum directly from a file path.
https://github.com/shakyshane/from_file
Last synced: about 1 month ago
JSON representation
A simple convenience to deserialize a rust Struct or Enum directly from a file path.
- Host: GitHub
- URL: https://github.com/shakyshane/from_file
- Owner: shakyShane
- Created: 2018-11-30T21:50:44.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2023-06-21T23:22:28.000Z (over 1 year ago)
- Last Synced: 2024-11-10T07:43:44.463Z (about 2 months ago)
- Language: Rust
- Homepage:
- Size: 15.6 KB
- Stars: 4
- Watchers: 2
- Forks: 2
- Open Issues: 5
-
Metadata Files:
- Readme: readme.md
Awesome Lists containing this project
README
## from_file [![Build Status](https://travis-ci.org/shakyShane/from_file.svg?branch=master)](https://travis-ci.org/shakyShane/from_file)
> A simple convenience to deserialize a rust Struct or Enum directly from a file path.
It saves you from having to convert a string into a file-path, attempt to read the contents & then
deserialize. It's a wrapper around `serde` so you can use all of the features that you would normally 👍**Links:**
- [from_file on crates.io](https://crates.io/crates/from_file)
- [from_file_derive on crates.io](https://crates.io/crates/from_file_derive)
- [docs](https://docs.rs/from_file/x/from_file/)## Example
```rust
#[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);
```### Full example with imports and error handing
```rust
#[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)
}
}
```