pub struct ThreadEvent {
pub frame: Option<StreamFrame>,
pub payload: Option<Payload>,
}Expand description
One typed stream composes a Thread’s decision context. Common frame controls have no payload. Every data frame carries exactly one payload; snapshots and delta batches become visible only at their checkpoint. SectionReplacement.section and SectionStatus.section use these exact keys: overview (overview); captures (capture); review (comparison, review, diff); evidence (evidence, check_acknowledgement); resolved_alternatives (resolved_alternative); collaboration (discussion, turn, context, source_target); analysis (analysis); checkouts (checkout); timeline (timeline_event, run, operation); sharing (sharing, publication). Replacement clears only that section’s committed collection. V1 timeline “operation” is explicitly empty. Timeline always reports a section status, including an eligible empty collection. Timeline run/event frames reuse RunRecord/TimelineRecord output, ordered by server change sequence; recorded_at is display time only. Removal uses Removal. A lost timeline membership proof or change-log continuity ends with Reset then FIN. Resource-reader and Thread/Spool audience rights are ceilings. A run/event is visible only to its verified direct-human principal account or a live same-principal agent whose final effective PoP key digest exactly equals the run’s frozen actor digest. Agent labels, Thread/Spool owner and admin roles never override that predicate. Join current sharing epoch, audience, billing/deletion gates and the payload deadline before order, limit or count. Forbidden and absent run IDs, pages and cursors have identical status, count, cursor and Reset shapes. No hidden append advances a visible cursor. Every eligibility-bearing frame gets a fresh current database authorization check immediately before handoff; expiry wakes idle followers without a sweep. Unknown section semantics require a fresh supported view, never silent loss.
Fields§
§frame: Option<StreamFrame>§payload: Option<Payload>Trait Implementations§
Source§impl Clone for ThreadEvent
impl Clone for ThreadEvent
Source§fn clone(&self) -> ThreadEvent
fn clone(&self) -> ThreadEvent
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 ThreadEvent
impl Debug for ThreadEvent
Source§impl Default for ThreadEvent
impl Default for ThreadEvent
Source§fn default() -> ThreadEvent
fn default() -> ThreadEvent
Source§impl Message for ThreadEvent
impl Message for ThreadEvent
Source§fn encoded_len(&self) -> usize
fn encoded_len(&self) -> usize
Source§fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self. Read moreSource§fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self.Source§impl ObservedEvent for ThreadEvent
impl ObservedEvent for ThreadEvent
Source§impl PartialEq for ThreadEvent
impl PartialEq for ThreadEvent
impl StructuralPartialEq for ThreadEvent
Auto Trait Implementations§
impl Freeze for ThreadEvent
impl RefUnwindSafe for ThreadEvent
impl Send for ThreadEvent
impl Sync for ThreadEvent
impl Unpin for ThreadEvent
impl UnsafeUnpin for ThreadEvent
impl UnwindSafe for ThreadEvent
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more