use std::rc::Rc; use uuid::Uuid; use crate::gpx::{Link, Track, WaypointChunk}; #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] pub struct FileId(pub Uuid); impl Default for FileId { fn default() -> Self { Self(Uuid::new_v4()) } } #[derive(Debug, Default, PartialEq)] pub struct File { pub id: FileId, pub info: FileInfo, pub trk: Vec, pub wpt: Vec>, // TODO routes } #[derive(Debug, Default, PartialEq)] pub struct FileInfo { pub name: String, pub desc: Option, pub author: Option, pub link: Option, pub time: Option, } #[derive(Debug, Default, PartialEq)] pub struct Author { pub name: Option, pub email: Option, pub link: Option, }