macro_rules! plain {
($data:ty, $dir:expr, $project_directory:expr, $sub_directories:expr, $file_name:expr) => { ... };
}Available on crate feature
plain only.Expand description
Implement the Plain trait
Plain has no file extension.
§Input
These are the inputs you need to provide to implement Plain.
| 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 | Plain::OS_DIRECTORY | Dir | Dir::Data |
$project_directory | The name of the top project folder | Plain::PROJECT_DIRECTORY | &str | "MyProject" |
$sub_directories | (Optional) sub-directories before file | Plain::SUB_DIRECTORIES | &str | "some/dirs" |
$file_name | The file name to use | Plain::FILE_NAME | &str | "state" |
§Example
use serde::{Serialize,Deserialize};
use disk::*;
plain!(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.