mod uuid_v4;
use serde::{Deserialize, Serialize};
use uuid_v4::UUIDv4;
#[derive(Serialize, Deserialize, Debug)]
pub struct Garden {
pub title: String,
pub link: URL,
pub items: Vec<Item>,
pub last_updated: ISO8601Time,
}
#[derive(Serialize, Deserialize, Debug)]
pub struct Item {
title: String,
id: UUIDv4,
summary: String,
created: ISO8601Time,
updates: Vec<Update>,
link: URL,
}
#[derive(Serialize, Deserialize, Debug)]
pub struct Update {
time: ISO8601Time,
change: Change,
}
#[derive(Serialize, Deserialize, Debug)]
pub enum Change {
Summary(String),
Patch(Patch),
SummaryAndPatch { summary: String, patch: Patch },
}
#[derive(Serialize, Deserialize, Debug)]
pub struct ISO8601Time(String);
#[derive(Serialize, Deserialize, Debug)]
pub struct Patch(String);
#[derive(Serialize, Deserialize, Debug)]
pub struct URL(String);