use serde::{Deserialize, Serialize}; #[derive(Serialize, Deserialize)] pub struct Car { year: u16, // I'll worry about this in 65534 AD. make: String, model: String, engine: Engine, doors: u8, transmission: Transmission, } #[derive(Serialize, Deserialize)] pub struct Part { name: String, compatible_cars: Vec, sources: Vec, categories: Vec, } #[derive(Serialize, Deserialize)] pub enum Source { Uri(String), } #[derive(Serialize, Deserialize)] pub struct Engine { cylinders: u8, displacement: u16, layout: Layout, } #[derive(Serialize, Deserialize)] pub enum Layout { I, V, } #[derive(Serialize, Deserialize)] pub struct Transmission(String); #[derive(Serialize, Deserialize)] pub struct Category(String);