pub struct FileStore { /* private fields */ }Expand description
File-based message store implementation.
Uses multiple files for storage:
.body: Append-only file containing raw message data.header: Index file mapping sequence numbers to message positions.seqnums: Stores sender and target sequence numbers.session: Stores session creation time
Implementations§
Trait Implementations§
Source§impl MessageStore for FileStore
impl MessageStore for FileStore
Source§fn add<'life0, 'life1, 'async_trait>(
&'life0 mut self,
sequence_number: u64,
message: &'life1 [u8],
) -> Pin<Box<dyn Future<Output = Result<(), StoreError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
FileStore: 'async_trait,
fn add<'life0, 'life1, 'async_trait>(
&'life0 mut self,
sequence_number: u64,
message: &'life1 [u8],
) -> Pin<Box<dyn Future<Output = Result<(), StoreError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
FileStore: 'async_trait,
Adds a message to the store with the given sequence number.
Source§fn get_slice<'life0, 'async_trait>(
&'life0 self,
begin: usize,
end: usize,
) -> Pin<Box<dyn Future<Output = Result<Vec<Vec<u8>>, StoreError>> + Send + 'async_trait>>where
'life0: 'async_trait,
FileStore: 'async_trait,
fn get_slice<'life0, 'async_trait>(
&'life0 self,
begin: usize,
end: usize,
) -> Pin<Box<dyn Future<Output = Result<Vec<Vec<u8>>, StoreError>> + Send + 'async_trait>>where
'life0: 'async_trait,
FileStore: 'async_trait,
Retrieves messages in the given sequence number range (inclusive).
Source§fn next_sender_seq_number(&self) -> u64
fn next_sender_seq_number(&self) -> u64
Returns the next sender sequence number (current + 1).
Source§fn next_target_seq_number(&self) -> u64
fn next_target_seq_number(&self) -> u64
Returns the next target sequence number (current + 1).
Source§fn increment_sender_seq_number<'life0, 'async_trait>(
&'life0 mut self,
) -> Pin<Box<dyn Future<Output = Result<(), StoreError>> + Send + 'async_trait>>where
'life0: 'async_trait,
FileStore: 'async_trait,
fn increment_sender_seq_number<'life0, 'async_trait>(
&'life0 mut self,
) -> Pin<Box<dyn Future<Output = Result<(), StoreError>> + Send + 'async_trait>>where
'life0: 'async_trait,
FileStore: 'async_trait,
Increments the sender sequence number by 1.
Source§fn increment_target_seq_number<'life0, 'async_trait>(
&'life0 mut self,
) -> Pin<Box<dyn Future<Output = Result<(), StoreError>> + Send + 'async_trait>>where
'life0: 'async_trait,
FileStore: 'async_trait,
fn increment_target_seq_number<'life0, 'async_trait>(
&'life0 mut self,
) -> Pin<Box<dyn Future<Output = Result<(), StoreError>> + Send + 'async_trait>>where
'life0: 'async_trait,
FileStore: 'async_trait,
Increments the target sequence number by 1.
Source§fn set_target_seq_number<'life0, 'async_trait>(
&'life0 mut self,
seq_number: u64,
) -> Pin<Box<dyn Future<Output = Result<(), StoreError>> + Send + 'async_trait>>where
'life0: 'async_trait,
FileStore: 'async_trait,
fn set_target_seq_number<'life0, 'async_trait>(
&'life0 mut self,
seq_number: u64,
) -> Pin<Box<dyn Future<Output = Result<(), StoreError>> + Send + 'async_trait>>where
'life0: 'async_trait,
FileStore: 'async_trait,
Sets the target sequence number to a specific value.
Source§fn reset<'life0, 'async_trait>(
&'life0 mut self,
) -> Pin<Box<dyn Future<Output = Result<(), StoreError>> + Send + 'async_trait>>where
'life0: 'async_trait,
FileStore: 'async_trait,
fn reset<'life0, 'async_trait>(
&'life0 mut self,
) -> Pin<Box<dyn Future<Output = Result<(), StoreError>> + Send + 'async_trait>>where
'life0: 'async_trait,
FileStore: 'async_trait,
Resets the store, clearing all messages and resetting sequence numbers.
Source§fn creation_time(&self) -> DateTime<Utc>
fn creation_time(&self) -> DateTime<Utc>
Returns the creation time of the current session.
Auto Trait Implementations§
impl Freeze for FileStore
impl RefUnwindSafe for FileStore
impl Send for FileStore
impl Sync for FileStore
impl Unpin for FileStore
impl UnsafeUnpin for FileStore
impl UnwindSafe for FileStore
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more