pub struct Slot {Show 18 fields
pub stream: StreamKey,
pub epoch: u16,
pub message_id: u8,
pub count: u8,
pub present: u16,
pub unavailable: u16,
pub repair_exhausted: u16,
pub frag_len: [u8; 10],
pub meta: FirstMeta,
pub have_meta: bool,
pub announced: bool,
pub late: bool,
pub notified: bool,
pub handle: MessageHandle,
pub created_ms: u64,
pub deadline_ms: u64,
pub repair_at_ms: u64,
pub last_fragment_ms: u64,
/* private fields */
}Expand description
One in-progress reassembly.
Fields§
§stream: StreamKey§epoch: u16§message_id: u8§count: u8§present: u16Bitmap of fragments whose bytes are stored.
Bitmap of fragments the sender reported unavailable.
repair_exhausted: u16Missing fragments whose automatic repair budget was exhausted. This
is separate from unavailable: the body remains pending until the
reassembly TTL, but the scheduler must not reset and retry forever.
frag_len: [u8; 10]§meta: FirstMeta§have_meta: bool§announced: boolAn Insert mutation has been emitted for this slot’s handle.
late: boolThis reassembly reused a gap placeholder handle, so its announcing Insert should be flagged “received late”.
notified: boolA notify-eligible mutation (completion or notify deadline) has already been emitted for this reassembly, so it must not fire again.
handle: MessageHandle§created_ms: u64§deadline_ms: u64§repair_at_ms: u64Next time repair scheduling may consider this slot.
last_fragment_ms: u64When the newest fragment was stored; arrivals defer repair from here.
Implementations§
Source§impl Slot
impl Slot
pub fn is_complete(&self) -> bool
Sourcepub fn is_settled(&self) -> bool
pub fn is_settled(&self) -> bool
Every fragment is either present or reported unavailable, so no further repair can improve this slot.
pub fn missing(&self) -> impl Iterator<Item = u8> + '_
pub fn repairable_missing(&self) -> impl Iterator<Item = u8> + '_
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Slot
impl RefUnwindSafe for Slot
impl Send for Slot
impl Sync for Slot
impl Unpin for Slot
impl UnwindSafe for Slot
Blanket Implementations§
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§unsafe fn clone_to_uninit(&self, dest: *mut u8)
unsafe fn clone_to_uninit(&self, dest: *mut u8)
clone_to_uninit)