pub struct ConversationMessage {
pub message_id: String,
pub seq: i64,
pub from: String,
pub from_address: String,
pub body: String,
pub reply_to: Option<String>,
pub metadata: Value,
pub created_at: String,
pub my_receipt: Option<ReceiptInfo>,
pub publication: String,
pub unavailable: Option<String>,
}Expand description
One message of a thread.
Fields§
§message_id: String§seq: i64§from: String§from_address: Stringagent/session of the sender, for an exact reply.
body: StringThe text the sender wrote, or an EMPTY STRING when unavailable is
set. Check unavailable before quoting or summarising: an empty
body with a reason there is a body this bus cannot give you — not
yet, or not any more — never an empty message from your teammate.
reply_to: Option<String>§metadata: Value§created_at: String§my_receipt: Option<ReceiptInfo>Your own observations on this message, when you are a recipient.
publication: StringWhere this body stands with the backend that holds it: stored
normally, and pending_publication, failed or tombstoned when
the body is not here. A thread on the default Postgres backend is
always stored.
Always present. null when body is the real text; otherwise why
the body is not here, and body is an empty placeholder. The reason
says which case it is: a backend that cannot be reached right now
(try again later), a body that was never stored, or one the backend
no longer holds (those two will not come back). The message keeps
its place in the sequence, its sender and its receipts either way: a
gap you can see and read about is not the same as a gap.
Trait Implementations§
Source§impl Debug for ConversationMessage
impl Debug for ConversationMessage
Source§impl JsonSchema for ConversationMessage
impl JsonSchema for ConversationMessage
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
$ref keyword. Read moreAuto Trait Implementations§
impl Freeze for ConversationMessage
impl RefUnwindSafe for ConversationMessage
impl Send for ConversationMessage
impl Sync for ConversationMessage
impl Unpin for ConversationMessage
impl UnsafeUnpin for ConversationMessage
impl UnwindSafe for ConversationMessage
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
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
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