pub struct DiscussionTurn {
pub ref: Option<RecordRef>,
pub discussion: Option<RecordRef>,
pub body: String,
pub principal_id: String,
pub agent_id: String,
pub mentions: Vec<EntityRef>,
pub created_at: Option<Timestamp>,
pub causal_id: Vec<u8>,
pub causal_parents: Vec<Vec<u8>>,
pub author_display_name: String,
}Fields§
§ref: Option<RecordRef>§discussion: Option<RecordRef>§body: String§principal_id: String§agent_id: String§mentions: Vec<EntityRef>Principal ids remain opaque and unchanged from signed metadata in every projection; principal access never causes refusal or stripping. Only mention notification delivery is gated by anchor/audience read access at delivery time, with no author-visible delivery field or status. Source mentions may be refused when the author cannot read the source. See docs/alpha-v2/collaboration-mentions-tags.md for bounds and disclosure.
created_at: Option<Timestamp>§causal_id: Vec<u8>Immutable replication-operation identity and dependencies, shared across replicas. These are separate from the addressable record ID and mutable view version.
causal_parents: Vec<Vec<u8>>Server-derived live display name of the authenticated principal_id, even after membership ends. Empty for unresolved/deleted/withheld attribution. Imported labels never establish a verified identity; agent_id stays separate. Projection only, outside the original signed operation.
Trait Implementations§
Source§impl Clone for DiscussionTurn
impl Clone for DiscussionTurn
Source§fn clone(&self) -> DiscussionTurn
fn clone(&self) -> DiscussionTurn
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 DiscussionTurn
impl Debug for DiscussionTurn
Source§impl Default for DiscussionTurn
impl Default for DiscussionTurn
Source§fn default() -> DiscussionTurn
fn default() -> DiscussionTurn
Source§impl Message for DiscussionTurn
impl Message for DiscussionTurn
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 PartialEq for DiscussionTurn
impl PartialEq for DiscussionTurn
impl StructuralPartialEq for DiscussionTurn
Auto Trait Implementations§
impl Freeze for DiscussionTurn
impl RefUnwindSafe for DiscussionTurn
impl Send for DiscussionTurn
impl Sync for DiscussionTurn
impl Unpin for DiscussionTurn
impl UnsafeUnpin for DiscussionTurn
impl UnwindSafe for DiscussionTurn
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