disk

Macro pickle

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

Implement the Pickle trait

File extension is pickle and is automatically appended.

§Input

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

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

§Example

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

pickle!(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.pickle.