From 531c6d1bf701af8548bc764cd977942f65bcf76f Mon Sep 17 00:00:00 2001 From: curly Date: Tue, 28 Feb 2023 10:32:16 -0700 Subject: terrible ws implementation --- src/database.rs | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) (limited to 'src/database.rs') diff --git a/src/database.rs b/src/database.rs index 74d9c1a..48c6b12 100644 --- a/src/database.rs +++ b/src/database.rs @@ -6,6 +6,7 @@ use super::*; pub struct Database { db: Connection, + newest_message_id: Option, } impl Database { pub fn get_message(&self, id: usize) -> Option { @@ -40,11 +41,18 @@ impl Database { pub fn get_next_message_id(&self) -> UID { UID::from(self.get_table_length("messages")) } - pub fn get_message_newest_id(&self) -> Option { - match self.get_table_length("messages") { - 0 => None, - n => Some(UID::new(n - 1)), + pub fn get_message_newest_id(&mut self) -> Option { + match self.newest_message_id { + None => { + self.newest_message_id = match self.get_table_length("messages") { + 0 => None, + n => Some(UID::new(n - 1)), + } + }, + Some(_) => () } + + self.newest_message_id } fn message_from_row(&self, row: sqlite::Row) -> Message{ @@ -137,6 +145,8 @@ impl Database { } } + self.newest_message_id = Some(msg.id()); + Ok(msg.id()) } @@ -379,6 +389,7 @@ impl Database { Database { db: db, + newest_message_id: None } } } \ No newline at end of file -- cgit v1.2.3