devjournal 0.1.0

A dev first cli journaling tool
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
use serde::{Serialize, de::DeserializeOwned};
use std::fs::File;
use std::io::{self, BufReader, BufWriter};
use std::path::Path;

pub fn save_json<T: Serialize>(path: &Path, data: &T) -> io::Result<()> {
    let file = File::create(path)?;
    let writer = BufWriter::new(file);
    serde_json::to_writer_pretty(writer, data).map_err(|e| io::Error::new(io::ErrorKind::Other, e))
}

pub fn read_json<T: DeserializeOwned>(path: &Path) -> io::Result<T> {
    let file = File::open(path)?;
    let reader = BufReader::new(file);
    serde_json::from_reader(reader).map_err(|e| io::Error::new(io::ErrorKind::Other, e))
}