macro_rules! postcard { ($data:ty, $dir:expr, $project_directory:tt, $sub_directories:tt, $file_name:tt) => { ... }; }
Expand description
Implement the Postcard trait
File extension is bin and is automatically appended.
Input
These are the inputs you need to provide to implement Postcard.
| Variable | Description | Related Trait Constant | Type | Example |
|---|---|---|---|---|
$data | Identifier of the data to implement for | struct or enum | MyState | |
$dir | Which OS directory to use | Postcard::OS_DIRECTORY | Dir | Dir::Data |
$project_directory | The name of the top project folder | Postcard::PROJECT_DIRECTORY | &str | "MyProject" |
$sub_directories | (Optional) sub-directories before file | Postcard::SUB_DIRECTORIES | &str | "some/dirs" |
$file_name | The file name to use | Postcard::FILE_NAME | &str | "state" |
Example
use serde::{Serialize,Deserialize};
use disk::*;
postcard!(State, Dir::Data, "MyProject", "some/dirs", "state");
#[derive(Serialize,Deserialize)]
struct State {
string: String,
number: u32,
}This example would be located at ~/.local/share/myproject/some/dirs/state.bin.