From 6b88191dc5e1e4b634564693404af91877ab11c2 Mon Sep 17 00:00:00 2001 From: Nadja Reitzenstein Date: Sun, 5 Dec 2021 23:43:36 +0100 Subject: [PATCH] Set previous user on all state changes if required Fixes: #30 --- src/machine.rs | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/machine.rs b/src/machine.rs index 4a6c02f..d2dad26 100644 --- a/src/machine.rs +++ b/src/machine.rs @@ -192,8 +192,20 @@ impl Inner { } pub fn do_state_change(&mut self, new_state: MachineState) { - let old_state = self.replace_state(new_state); - self.reset.replace(old_state); + let old_state = self.replace_state(new_state); + + // Set "previous user" if state change warrants it + match old_state.state { + Status::InUse(ref user) => { + self.previous = user.clone(); + }, + Status::ToCheck(ref user) => { + self.previous = Some(user.clone()); + }, + _ => {}, + } + + self.reset.replace(old_state); } pub fn read_state(&self) -> ReadOnlyMutable {