pub trait FixSeqStore: Send + Sync {
// Required methods
fn next_out<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = u64> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn peek_out<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = u64> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn observed_in<'life0, 'async_trait>(
&'life0 self,
n: u64,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn current_in<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = u64> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn reset<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
}Expand description
Persistence for the two sequence counters a FIX session must keep.
next_outreturns the sequence number to stamp on the next outbound message and atomically advances the counter, so two concurrent sends can never reuse a number.observed_inrecords that an inbound message with sequence numbernwas processed (tracking the high-water mark).current_inreturns the next expected inbound sequence number, i.e. one past the highest observed.resetreturns both counters to their initial state (used forResetSeqNumFlag=Ylogon andSequenceReset).
Required Methods§
Sourcefn next_out<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = u64> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn next_out<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = u64> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
The next outbound MsgSeqNum, advancing the counter.
Sourcefn peek_out<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = u64> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn peek_out<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = u64> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Peek the next outbound MsgSeqNum without advancing (for building a
resend range or diagnostics).
Sourcefn observed_in<'life0, 'async_trait>(
&'life0 self,
n: u64,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn observed_in<'life0, 'async_trait>(
&'life0 self,
n: u64,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Record that an inbound message with MsgSeqNum == n was processed.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".