summaryrefslogtreecommitdiff
path: root/src/models/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/models/mod.rs')
-rw-r--r--src/models/mod.rs43
1 files changed, 43 insertions, 0 deletions
diff --git a/src/models/mod.rs b/src/models/mod.rs
new file mode 100644
index 0000000..d7ff47a
--- /dev/null
+++ b/src/models/mod.rs
@@ -0,0 +1,43 @@
+use serde::{Deserialize, Serialize};
+
+#[derive(Serialize, Deserialize)]
+pub struct Car {
+ year: u16, // Yes, in 30767 years I will address this.
+ make: String,
+ model: String,
+ engine: Engine,
+ doors: u8,
+ transmission: Transmission,
+}
+
+#[derive(Serialize, Deserialize)]
+pub struct Part {
+ name: String,
+ compatible_cars: Vec<Car>,
+ sources: Vec<Source>,
+ categories: Vec<Category>,
+}
+
+#[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);