pub struct OverflowPush {
pub blob_hash: [u8; 32],
pub size_bytes: u64,
pub sender_node_id: u64,
}Expand description
Wire request body for an overflow push. The sender encodes
this via postcard + drops it into the nRPC payload; the
receiver decodes, runs super::admission::should_accept_overflow_from,
and on Admit opens the chunk channel against the local
adapter so the existing replication runtime can pull the
bytes.
The chunk bytes themselves do NOT ride this request — the
nRPC envelope carries the nudge, not the chunk payload.
size_bytes is the resolved chunk size so the receive-side
disk-gate can fire without round-tripping a stat call.
Wire layout: postcard’s default (field_order) encoding.
The field order is locked here for forward compatibility;
adding new fields requires a versioned variant (the trait-
object polymorphism on the postcard side is rigid). A
future v2 would land as a separate type registered under
a new service-name token, with v1 receivers ignoring the
new channel.
Fields§
§blob_hash: [u8; 32]32-byte BLAKE3 hash of the chunk to push.
size_bytes: u64Wire size of the chunk in bytes. Drives the receive- side disk-gate.
sender_node_id: u64Sender’s canonical node_id. The receiver synthesizes
the sender’s CapabilitySet from its local capability
fold keyed on this id; the admission check reads
overflow_enabled + scope tags from the synthesized
snapshot, not from the request body. Defends against a
sender forging its caps via the request — the only
authority is the verified fold state.
Trait Implementations§
Source§impl Clone for OverflowPush
impl Clone for OverflowPush
Source§fn clone(&self) -> OverflowPush
fn clone(&self) -> OverflowPush
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 OverflowPush
impl Debug for OverflowPush
Source§impl<'de> Deserialize<'de> for OverflowPush
impl<'de> Deserialize<'de> for OverflowPush
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>,
Source§impl PartialEq for OverflowPush
impl PartialEq for OverflowPush
Source§fn eq(&self, other: &OverflowPush) -> bool
fn eq(&self, other: &OverflowPush) -> bool
self and other values to be equal, and is used by ==.Source§impl Serialize for OverflowPush
impl Serialize for OverflowPush
impl Copy for OverflowPush
impl Eq for OverflowPush
impl StructuralPartialEq for OverflowPush
Auto Trait Implementations§
impl Freeze for OverflowPush
impl RefUnwindSafe for OverflowPush
impl Send for OverflowPush
impl Sync for OverflowPush
impl Unpin for OverflowPush
impl UnsafeUnpin for OverflowPush
impl UnwindSafe for OverflowPush
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,
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.