use crate::{Link, Track, Waypoints}; use super::common::uuid_id; uuid_id!(FileId); #[derive(Debug, Default, Clone)] pub struct File { pub id: FileId, pub info: FileInfo, pub trk: Vec, pub wpt: Waypoints, } #[derive(Debug, Default, Clone, PartialEq)] pub struct FileInfo { pub name: String, pub desc: Option, pub author: Option, pub links: Vec, pub time: Option, } #[derive(Debug, Default, Clone, PartialEq)] pub struct Author { pub name: Option, /// `id@domain`, which the file gives as the two attributes of an `email` element. pub email: Option, /// The author has a single link, unlike the other elements. pub link: Option, }