diff --git a/src/main.rs b/src/main.rs index a66d727..66b9ac8 100644 --- a/src/main.rs +++ b/src/main.rs @@ -4,28 +4,21 @@ extern crate rocket; extern crate serde; -mod simulation; - use std::sync::{Arc, Mutex}; use std::thread; use std::time::Duration; -use rocket::State; +use rocket::State as RocketState; use rocket_contrib::templates::Template; -use serde::Serialize; -use simulation::{Object, Simulation}; +mod simulation; +mod state; -#[derive(Clone, Serialize)] -struct SimState { - pub iteration: u64, - pub objects: Vec -} - -type WrappedState = Arc>; +use simulation::Simulation; +use state::{State, WrappedState}; #[get("/")] -fn index(sim: State) -> Template { +fn index(sim: RocketState) -> Template { let state = sim.lock().unwrap(); @@ -49,7 +42,7 @@ fn simulation(s: WrappedState) { } fn main() { - let state = Arc::new(Mutex::new(SimState { + let state = Arc::new(Mutex::new(State { iteration: 0, objects: vec![] })); diff --git a/src/simulation.rs b/src/simulation.rs index 9b58dda..2c58524 100644 --- a/src/simulation.rs +++ b/src/simulation.rs @@ -1,6 +1,7 @@ use legion::prelude::*; use rand::prelude::*; -use serde::Serialize; + +use crate::state::Object; #[derive(Clone, Debug, PartialEq)] struct Name { @@ -23,13 +24,6 @@ pub struct Simulation { world: World } -#[derive(Clone, Serialize)] -pub struct Object { - pub name: String, - pub x: f64, - pub y: f64, -} - impl Simulation { pub fn new() -> Self { let universe = Universe::new(); diff --git a/src/state.rs b/src/state.rs new file mode 100644 index 0000000..0c99069 --- /dev/null +++ b/src/state.rs @@ -0,0 +1,18 @@ +use std::sync::{Arc, Mutex}; + +use serde::Serialize; + +#[derive(Clone, Serialize)] +pub struct Object { + pub name: String, + pub x: f64, + pub y: f64, +} + +#[derive(Clone, Serialize)] +pub struct State { + pub iteration: u64, + pub objects: Vec +} + +pub type WrappedState = Arc>;