disk

Macro bson

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

Implement the Bson trait

File extension is bson and is automatically appended.

§Input

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

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

§Example

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

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