diff options
Diffstat (limited to 'src/login/history.rs')
| -rw-r--r-- | src/login/history.rs | 52 |
1 files changed, 0 insertions, 52 deletions
diff --git a/src/login/history.rs b/src/login/history.rs deleted file mode 100644 index d67bcce..0000000 --- a/src/login/history.rs +++ /dev/null @@ -1,52 +0,0 @@ -use super::{ - Id, Login, - event::{Created, Event}, -}; -use crate::event::{Instant, Sequence}; - -#[derive(Clone, Debug, Eq, PartialEq)] -pub struct History { - pub login: Login, - pub created: Instant, -} - -// State interface -impl History { - pub fn id(&self) -> &Id { - &self.login.id - } - - // Snapshot of this login as it was when created. (Note to the future: it's okay - // if this returns a redacted or modified version of the login. If we implement - // renames by redacting the original name, then this should return the edited - // login, not the original, even if that's not how it was "as created.") - pub fn as_created(&self) -> Login { - self.login.clone() - } - - pub fn as_of(&self, resume_point: Sequence) -> Option<Login> { - self.events() - .filter(Sequence::up_to(resume_point)) - .collect() - } - - // Snapshot of this login, as of all events recorded in this history. - pub fn as_snapshot(&self) -> Option<Login> { - self.events().collect() - } -} - -// Events interface -impl History { - fn created(&self) -> Event { - Created { - instant: self.created, - login: self.login.clone(), - } - .into() - } - - pub fn events(&self) -> impl Iterator<Item = Event> + use<> { - [self.created()].into_iter() - } -} |
