summaryrefslogtreecommitdiff
path: root/src/app.rs
diff options
context:
space:
mode:
authorOwen Jacobson <owen@grimoire.ca>2024-10-02 12:25:36 -0400
committerOwen Jacobson <owen@grimoire.ca>2024-10-03 19:25:41 -0400
commitec804134c33aedb001c426c5f42f43f53c47848f (patch)
treec62b59ab5cdd438f47a5f9cc35fdc712d362af19 /src/app.rs
parent469613872f6fb19f4579b387e19b2bc38fa52f51 (diff)
Represent channels and messages using a split "History" and "Snapshot" model.
This separates the code that figures out what happened to an entity from the code that represents it to a user, and makes it easier to compute a snapshot at a point in time (for things like bootstrap). It also makes the internal logic a bit easier to follow, since it's easier to tell whether you're working with a point in time or with the whole recorded history. This hefty.
Diffstat (limited to 'src/app.rs')
-rw-r--r--src/app.rs5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/app.rs b/src/app.rs
index 5542e5f..186e5f8 100644
--- a/src/app.rs
+++ b/src/app.rs
@@ -4,6 +4,7 @@ use crate::{
channel::app::Channels,
event::{app::Events, broadcaster::Broadcaster as EventBroadcaster},
login::app::Logins,
+ message::app::Messages,
token::{app::Tokens, broadcaster::Broadcaster as TokenBroadcaster},
};
@@ -35,6 +36,10 @@ impl App {
Logins::new(&self.db)
}
+ pub const fn messages(&self) -> Messages {
+ Messages::new(&self.db, &self.events)
+ }
+
pub const fn tokens(&self) -> Tokens {
Tokens::new(&self.db, &self.tokens)
}