pub struct WebSocketReadResponse {
pub messages: Vec<BufferedMessage>,
pub latest_index: Option<u64>,
pub oldest_index: Option<u64>,
}Expand description
Response for WebSocket read operations.
This struct captures the read result with messages and buffer state information.
§Gap Detection
Consumers can detect gaps by comparing message indices. Each BufferedMessage
contains an index field that increases monotonically. If there’s a gap between
indices, some messages were evicted from the buffer.
§Convenience Methods
For common access patterns, use the convenience methods instead of accessing fields directly:
// Instead of:
let data = response.messages.first().unwrap().content.as_data().unwrap();
// Use:
let data = response.first_data().unwrap();Fields§
§messages: Vec<BufferedMessage>All requested messages (based on read mode).
latest_index: Option<u64>Current highest index in buffer (for tracking).
oldest_index: Option<u64>Current lowest index in buffer (helpful for gap detection).
Implementations§
Source§impl WebSocketReadResponse
impl WebSocketReadResponse
Sourcepub fn has_messages(&self) -> bool
pub fn has_messages(&self) -> bool
Returns true if there are any messages in the response.
Sourcepub fn message_count(&self) -> usize
pub fn message_count(&self) -> usize
Returns the number of messages in the response.
Sourcepub fn first_message(&self) -> Option<&BufferedMessage>
pub fn first_message(&self) -> Option<&BufferedMessage>
Get the first (oldest) message, if any.
Sourcepub fn latest_message(&self) -> Option<&BufferedMessage>
pub fn latest_message(&self) -> Option<&BufferedMessage>
Get the last (most recent) message, if any.
Sourcepub fn first_data(&self) -> Option<&[u8]>
pub fn first_data(&self) -> Option<&[u8]>
Get the data from the first message (convenience for common pattern).
Returns None if there are no messages or if the first message is a system message.
Sourcepub fn latest_data(&self) -> Option<&[u8]>
pub fn latest_data(&self) -> Option<&[u8]>
Get the data from the latest message (convenience for common pattern).
Returns None if there are no messages or if the latest message is a system message.
Sourcepub fn data_messages(&self) -> impl Iterator<Item = &BufferedMessage>
pub fn data_messages(&self) -> impl Iterator<Item = &BufferedMessage>
Iterate over only the data messages (filtering out system messages).
Sourcepub fn iter_data(&self) -> impl Iterator<Item = &[u8]>
pub fn iter_data(&self) -> impl Iterator<Item = &[u8]>
Iterate over only the data bytes (convenience for processing).
This filters out system messages and returns only the raw data bytes.
Sourcepub fn data_message_count(&self) -> usize
pub fn data_message_count(&self) -> usize
Returns the number of data messages (excluding system messages).
Sourcepub fn has_system_messages(&self) -> bool
pub fn has_system_messages(&self) -> bool
Returns true if any message is a system message (like OversizedWarning).
Trait Implementations§
Source§impl BorshDeserialize for WebSocketReadResponse
impl BorshDeserialize for WebSocketReadResponse
fn deserialize_reader<__R: Read>(reader: &mut __R) -> Result<Self, Error>
Source§fn deserialize(buf: &mut &[u8]) -> Result<Self, Error>
fn deserialize(buf: &mut &[u8]) -> Result<Self, Error>
Source§fn try_from_slice(v: &[u8]) -> Result<Self, Error>
fn try_from_slice(v: &[u8]) -> Result<Self, Error>
fn try_from_reader<R>(reader: &mut R) -> Result<Self, Error>where
R: Read,
Source§impl Clone for WebSocketReadResponse
impl Clone for WebSocketReadResponse
Source§fn clone(&self) -> WebSocketReadResponse
fn clone(&self) -> WebSocketReadResponse
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for WebSocketReadResponse
impl Debug for WebSocketReadResponse
Source§impl<'de> Deserialize<'de> for WebSocketReadResponse
impl<'de> Deserialize<'de> for WebSocketReadResponse
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for WebSocketReadResponse
Source§impl PartialEq for WebSocketReadResponse
impl PartialEq for WebSocketReadResponse
Source§fn eq(&self, other: &WebSocketReadResponse) -> bool
fn eq(&self, other: &WebSocketReadResponse) -> bool
self and other values to be equal, and is used by ==.Source§impl Serialize for WebSocketReadResponse
impl Serialize for WebSocketReadResponse
impl StructuralPartialEq for WebSocketReadResponse
Auto Trait Implementations§
impl Freeze for WebSocketReadResponse
impl RefUnwindSafe for WebSocketReadResponse
impl Send for WebSocketReadResponse
impl Sync for WebSocketReadResponse
impl Unpin for WebSocketReadResponse
impl UnsafeUnpin for WebSocketReadResponse
impl UnwindSafe for WebSocketReadResponse
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.