pub enum Field {
UnixTime(u32),
Distance(u32),
+ Pace(u32)
}
pub struct Model {
pub unix_time: u32,
pub distance_cm: u32,
+ pub pace_s: u32,
is_dirty: u32,
}
Model {
unix_time: 0,
distance_cm: 0,
+ pace_s: 0,
is_dirty: 0,
}
}
self.distance_cm = 0;
self.is_dirty |= Model::dirty_mask(Field::Distance(0));
}
+
+ if self.pace_s != 0 {
+ self.pace_s = 0;
+
+ self.is_dirty |= Model::dirty_mask(Field::Pace(0));
+ }
}
pub fn update(&mut self, data: Field) {
self.is_dirty |= Model::dirty_mask(data);
}
},
+ Field::Pace(pace_s) => {
+ if self.pace_s != pace_s {
+ self.pace_s = pace_s;
+ self.is_dirty |= Model::dirty_mask(data);
+ }
+ },
}
}
match data {
Field::UnixTime(_) => 1,
Field::Distance(_) => 2,
+ Field::Pace(_) => 4,
}
}
}