pub enum RemoteParticipantInbound {
Applied {
value: ServerValue,
provenance: ParticipantResponseProvenance,
},
Refused {
value: ServerValue,
reason: ClientInboundRefusalReason,
provenance: ParticipantResponseProvenance,
},
Push {
value: ServerPush,
provenance: ParticipantResponseProvenance,
},
}Expand description
Typed result of one decoded participant frame on the real receive path.
Variants§
Applied
The protocol crate correlated and applied a semantic response.
Fields
value: ServerValueExact applied server value.
provenance: ParticipantResponseProvenanceConnection/attempt that delivered it.
Refused
The protocol crate retained the response and aggregate unchanged.
Fields
value: ServerValueExact refused server value.
reason: ClientInboundRefusalReasonClosed crate refusal reason, including conservative ambiguity.
provenance: ParticipantResponseProvenanceConnection/attempt that delivered it.
Push
Server push decoded in the client direction; no correlation rule applies.
Fields
value: ServerPushExact pushed value.
provenance: ParticipantResponseProvenanceConnection/attempt that delivered it.
Implementations§
Source§impl RemoteParticipantInbound
impl RemoteParticipantInbound
Sourcepub fn record_admission_fate(&self) -> Option<RecordAdmissionFate>
pub fn record_admission_fate(&self) -> Option<RecordAdmissionFate>
The TERMINAL fate of a record admission, when this inbound settles one.
Some exactly for an APPLIED commit or an APPLIED terminal protocol
fault. None for every transient refusal, every value answering another
operation, every Push, and — deliberately — for every
Refused: the crate declined to correlate that value,
so it settles nothing and the carrier’s slot stays.
Transport-agnostic by construction. Both the wire and the in-process
loopback transport decode through the same codec and land in the same
apply_inbound, so a carrier written against this reads the same fate
either way.
Sourcepub const fn committed_delivery_seq(&self) -> Option<DeliverySeq>
pub const fn committed_delivery_seq(&self) -> Option<DeliverySeq>
The record sequence the server assigned an admitted record, when this
inbound is an APPLIED ServerValue::RecordCommitted.
This is the answer to a RecordAdmission, read off the exact wire value
the protocol crate applied. It saves every caller destructuring the wire
enum to reach the one number a record admission is asked for, without
removing that value: Applied still carries the whole
ServerValue, so this is purely additive.
None for everything else, and that includes a RecordCommitted the
crate REFUSED. A refused commit carries a sequence on the wire while
leaving the aggregate and its correlation untouched – returning it here
would report a commitment the crate deliberately declined to make. It is
also None for a Push, which is a delivery rather than
a correlated response.