index : livejrnl-rs.git

ascending towards madness

use serde_derive::Deserialize;
use serde_derive::Serialize;
use std::collections::HashMap;

#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Journal {
    pub tags: HashMap<String, i64>,
    pub entries: Vec<JournalEntry>,
	pub template: Option<String>
}

#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct JournalEntry {
    pub title: String,
    pub body: String,
    pub date: String,
    pub time: String,
    pub tags: Vec<String>,
    pub starred: bool,
}

pub fn parse_journal_json(data: &str) -> Journal {
	return serde_json::from_str(&data).unwrap_or_default();
}