Mercurial > templog
view rust/src/types.rs @ 593:bf138339d20a rust
fiddling with timeouts and closures
author | Matt Johnston <matt@ucc.asn.au> |
---|---|
date | Tue, 27 Dec 2016 00:51:28 +0800 |
parents | 03b48ec0bb03 |
children | aff50ee77252 |
line wrap: on
line source
#[derive(RustcDecodable, RustcEncodable, Debug, Clone)] pub struct Params { pub fridge_setpoint: f32, pub fridge_difference: f32, pub overshoot_delay: u32, pub overshoot_factor: f32, pub disabled: bool, pub nowort: bool, pub fridge_range_lower: f32, pub fridge_range_upper: f32, } impl Params { pub fn defaults() -> Params { Params { fridge_setpoint: 16.0, fridge_difference: 0.2, overshoot_delay: 720, // 12 minutes overshoot_factor: 1.0, disabled: false, nowort: false, fridge_range_lower: 3.0, fridge_range_upper: 3.0, } } } #[derive(Debug)] pub struct ParamHolder { pub p: Params, epoch: String, // XXX or a byte array? } impl ParamHolder { pub fn new() -> ParamHolder { ParamHolder { p: Params::defaults(), epoch: String::new(), } } } #[derive(Debug)] pub struct Reading { name: String, value: Option<f32>, } impl Reading { pub fn new(name: String, value: f32) -> Reading { Reading { name: name, value: Some(value) } } pub fn new_none(name: String) -> Reading { Reading { name: name, value: None } } } #[derive(Debug)] pub struct Readings { temps: Vec<Vec<Reading>>, } impl Readings { pub fn new() -> Readings { Readings { temps: Vec::new(), } } pub fn push(&mut self, vals: Vec<Reading>) { self.temps.push(vals); } pub fn fridge(&self) -> Option<f32> { unimplemented!(); } pub fn wort(&self) -> Option<f32> { unimplemented!(); } }