disk

Macro yaml

Source
macro_rules! yaml {
    ($data:ty, $dir:expr, $project_directory:expr, $sub_directories:expr, $file_name:expr) => { ... };
}
Available on crate feature yaml only.
Expand description

Implement the Yaml trait

File extension is yml and is automatically appended.

§Input

These are the inputs you need to provide to implement Yaml.

VariableDescriptionRelated Trait ConstantTypeExample
$dataIdentifier of the data to implement forstruct or enumMyState
$dirWhich OS directory to useYaml::OS_DIRECTORYDirDir::Data
$project_directoryThe name of the top project folderYaml::PROJECT_DIRECTORY&str"MyProject"
$sub_directories(Optional) sub-directories before fileYaml::SUB_DIRECTORIES&str"some/dirs"
$file_nameThe file name to useYaml::FILE_NAME&str"state"

§Example

use serde::{Serialize,Deserialize};
use disk::*;

yaml!(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.yml.