summaryrefslogtreecommitdiff
path: root/src/login/history.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/login/history.rs')
-rw-r--r--src/login/history.rs52
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()
- }
-}