diff --git a/POC_in_rust/src/main.rs b/POC_in_rust/src/main.rs index 36bacc9..43174aa 100644 --- a/POC_in_rust/src/main.rs +++ b/POC_in_rust/src/main.rs @@ -6,6 +6,7 @@ use iced::widget::{center, column, row, text}; use iced::{Element, Subscription, Theme, Center, Task}; use tokio::fs::File; use tokio::io::AsyncWriteExt; +use std::fs::read_to_string; mod card_reader; mod approx_time; @@ -31,7 +32,7 @@ struct State{ impl Default for State { fn default() -> Self { Self { - racers: vec![RacerTime{time: Instant::now(), racer: Racer{starting_number:11,racer_id: 0, card_id: 0}}], + racers: vec![RacerTime{time: Instant::now(), racer: Racer{starting_number:11, card_id: 0}}], db: Default::default(), time: Instant::now(), } @@ -154,8 +155,9 @@ impl std::fmt::Debug for Message { pub fn main() -> iced::Result { + let init_state = || -> State {read_to_string("state.json").ok().map(|s| serde_json::from_str(&s).ok()).flatten().unwrap_or_else(||Default::default())} ; env_logger::init(); - iced::application(State::default, State::update, State::view) + iced::application(init_state, State::update, State::view) .subscription(State::subscription) .theme(State::theme) .run()