diff --git a/src/main.rs b/src/main.rs index 9a0c642..5f15150 100644 --- a/src/main.rs +++ b/src/main.rs @@ -2,12 +2,12 @@ mod new_roll; mod roll_view; +mod roll; use eframe::egui; -use egui_datepicker::{Local, NaiveDate}; use new_roll::NewRollWindow; +use roll::Roll; use roll_view::RollViewWindow; -use serde::{Deserialize, Serialize}; fn main() -> Result<(), eframe::Error> { env_logger::init(); // Log to stderr (if you run with `RUST_LOG=debug`). @@ -22,62 +22,6 @@ fn main() -> Result<(), eframe::Error> { ) } -#[derive(Debug, Serialize, Deserialize, Clone)] -pub struct Exposure { - num: u8, - #[serde(default)] - printed: bool, - #[serde(default)] - damaged: bool, - #[serde(default)] - paper: Option, -} - -#[derive(Debug, Serialize, Deserialize, Clone)] -pub struct Roll { - id: String, - name: String, - #[serde(default)] - desc: String, - date: NaiveDate, - exposures: Vec, -} - -impl Roll { - fn new(id: String, name: String, desc: String, date: NaiveDate, num_exposures: u8) -> Self { - let mut exposures = Vec::new(); - for num in 1..=num_exposures { - exposures.push(Exposure { - num, - printed: false, - damaged: false, - paper: None, - }) - } - Self { - id, - name, - desc, - date, - exposures, - } - } - - pub fn short_str(&self) -> String { - format!( - "{}{} on {}, {} exp", - self.id, - if self.name.is_empty() { - String::new() - } else { - format!(" - {}", self.name) - }, - self.date.format("%m/%d/%Y"), - self.exposures.len() - ) - } -} - pub struct AppState { pub rolls: Vec, } diff --git a/src/new_roll.rs b/src/new_roll.rs index 7bdd823..df53624 100644 --- a/src/new_roll.rs +++ b/src/new_roll.rs @@ -5,7 +5,7 @@ use eframe::{ }; use egui_datepicker::DatePicker; -use crate::{AppState, Roll}; +use crate::{AppState, roll::Roll}; pub struct NewRollWindow { id: String,