}
impl State {
- fn new() -> Self {
- State {
- users: [UState { player: default(), remaining: TVL::zero() }; N],
- current: None,
- }
+ fn new(spec: &ChessClock) -> Self {
+ let mut state = State::dummy();
+ state.reset(spec);
+ state
}
fn reset(&mut self, spec: &ChessClock) {
#[typetag::serde(name="ChessClock")]
impl PieceXData for State {
- fn dummy() -> Self { State::new() }
+ fn dummy() -> Self {
+ State {
+ users: [UState { player: default(), remaining: TVL::zero() }; N],
+ current: None,
+ }
+ }
}
spec: self.clone(),
};
- gpc.xdata_mut(|| State::new())?;
+ gpc.xdata_mut(|| State::new(&self) )?;
PieceSpecLoaded {
p: Box::new(clock),