pub struct StoredGroupMessage {Show 20 fields
pub id: Vec<u8>,
pub group_id: GroupId,
pub decrypted_message_bytes: Vec<u8>,
pub sent_at_ns: i64,
pub kind: GroupMessageKind,
pub sender_installation_id: Vec<u8>,
pub sender_inbox_id: String,
pub delivery_status: DeliveryStatus,
pub content_type: ContentType,
pub version_major: i32,
pub version_minor: i32,
pub authority_id: String,
pub reference_id: Option<Vec<u8>>,
pub sequence_id: i64,
pub envelope_hash: Option<Vec<u8>>,
pub expiry_ns: Option<i64>,
pub inserted_at_ns: i64,
pub expire_at_ns: Option<i64>,
pub should_push: bool,
pub idempotency_key: String,
}Expand description
Successfully processed messages to be returned to the User.
Fields§
§id: Vec<u8>Id of the message.
group_id: GroupIdId of the group this message is tied to.
decrypted_message_bytes: Vec<u8>Contents of message after decryption.
sent_at_ns: i64Time in nanoseconds the message was sent.
kind: GroupMessageKindGroup Message Kind Enum: 1 = Application, 2 = MembershipChange
sender_installation_id: Vec<u8>The ID of the App Installation this message was sent from.
sender_inbox_id: StringThe Inbox ID of the Sender
delivery_status: DeliveryStatusWe optimistically store messages before sending.
content_type: ContentTypeThe Content Type of the message
version_major: i32The content type version major
version_minor: i32The content type version minor
The ID of the authority defining the content type
reference_id: Option<Vec<u8>>The ID of a referenced message
sequence_id: i64The Message SequenceId
envelope_hash: Option<Vec<u8>>Canonical envelope hash assigned by the backend.
expiry_ns: Option<i64>Backend retention metadata. This does not control message deletion.
inserted_at_ns: i64Time in nanoseconds the message was inserted into the database This field is automatically set by the database
expire_at_ns: Option<i64>Timestamp (in NS) after which the message must be deleted
should_push: boolWhether to send a push notification when publishing this message
idempotency_key: StringThe idempotency key the message id is derived from. Defaults to the send timestamp, but callers may supply their own to make retries idempotent.
Implementations§
Trait Implementations§
Source§impl Clone for StoredGroupMessage
impl Clone for StoredGroupMessage
Source§fn clone(&self) -> StoredGroupMessage
fn clone(&self) -> StoredGroupMessage
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 StoredGroupMessage
impl Debug for StoredGroupMessage
Source§impl<'de> Deserialize<'de> for StoredGroupMessage
impl<'de> Deserialize<'de> for StoredGroupMessage
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 From<StoredGroupMessage> for GroupMessageSave
impl From<StoredGroupMessage> for GroupMessageSave
Source§fn from(value: StoredGroupMessage) -> Self
fn from(value: StoredGroupMessage) -> Self
Source§impl HasTable for StoredGroupMessage
impl HasTable for StoredGroupMessage
Source§impl<'ident> Identifiable for &'ident StoredGroupMessage
impl<'ident> Identifiable for &'ident StoredGroupMessage
Source§impl PartialEq for StoredGroupMessage
impl PartialEq for StoredGroupMessage
Source§fn eq(&self, other: &StoredGroupMessage) -> bool
fn eq(&self, other: &StoredGroupMessage) -> bool
self and other values to be equal, and is used by ==.Source§impl<__DB: Backend, __ST0, __ST1, __ST2, __ST3, __ST4, __ST5, __ST6, __ST7, __ST8, __ST9, __ST10, __ST11, __ST12, __ST13, __ST14, __ST15, __ST16, __ST17, __ST18, __ST19> Queryable<(__ST0, __ST1, __ST2, __ST3, __ST4, __ST5, __ST6, __ST7, __ST8, __ST9, __ST10, __ST11, __ST12, __ST13, __ST14, __ST15, __ST16, __ST17, __ST18, __ST19), __DB> for StoredGroupMessagewhere
(Vec<u8>, GroupId, Vec<u8>, i64, GroupMessageKind, Vec<u8>, String, DeliveryStatus, ContentType, i32, i32, String, Option<Vec<u8>>, i64, Option<Vec<u8>>, Option<i64>, i64, Option<i64>, bool, String): FromStaticSqlRow<(__ST0, __ST1, __ST2, __ST3, __ST4, __ST5, __ST6, __ST7, __ST8, __ST9, __ST10, __ST11, __ST12, __ST13, __ST14, __ST15, __ST16, __ST17, __ST18, __ST19), __DB>,
impl<__DB: Backend, __ST0, __ST1, __ST2, __ST3, __ST4, __ST5, __ST6, __ST7, __ST8, __ST9, __ST10, __ST11, __ST12, __ST13, __ST14, __ST15, __ST16, __ST17, __ST18, __ST19> Queryable<(__ST0, __ST1, __ST2, __ST3, __ST4, __ST5, __ST6, __ST7, __ST8, __ST9, __ST10, __ST11, __ST12, __ST13, __ST14, __ST15, __ST16, __ST17, __ST18, __ST19), __DB> for StoredGroupMessagewhere
(Vec<u8>, GroupId, Vec<u8>, i64, GroupMessageKind, Vec<u8>, String, DeliveryStatus, ContentType, i32, i32, String, Option<Vec<u8>>, i64, Option<Vec<u8>>, Option<i64>, i64, Option<i64>, bool, String): FromStaticSqlRow<(__ST0, __ST1, __ST2, __ST3, __ST4, __ST5, __ST6, __ST7, __ST8, __ST9, __ST10, __ST11, __ST12, __ST13, __ST14, __ST15, __ST16, __ST17, __ST18, __ST19), __DB>,
Source§impl<__DB: Backend> Selectable<__DB> for StoredGroupMessage
impl<__DB: Backend> Selectable<__DB> for StoredGroupMessage
Source§type SelectExpression = (id, group_id, decrypted_message_bytes, sent_at_ns, kind, sender_installation_id, sender_inbox_id, delivery_status, content_type, version_major, version_minor, authority_id, reference_id, sequence_id, envelope_hash, expiry_ns, inserted_at_ns, expire_at_ns, should_push, idempotency_key)
type SelectExpression = (id, group_id, decrypted_message_bytes, sent_at_ns, kind, sender_installation_id, sender_inbox_id, delivery_status, content_type, version_major, version_minor, authority_id, reference_id, sequence_id, envelope_hash, expiry_ns, inserted_at_ns, expire_at_ns, should_push, idempotency_key)
Source§fn construct_selection() -> Self::SelectExpression
fn construct_selection() -> Self::SelectExpression
Source§impl Serialize for StoredGroupMessage
impl Serialize for StoredGroupMessage
Source§impl<C> Store<C> for StoredGroupMessagewhere
C: ConnectionExt,
impl<C> Store<C> for StoredGroupMessagewhere
C: ConnectionExt,
Source§impl<C> StoreOrIgnore<C> for StoredGroupMessagewhere
C: ConnectionExt,
impl<C> StoreOrIgnore<C> for StoredGroupMessagewhere
C: ConnectionExt,
Source§impl TryFrom<GroupMessageSave> for StoredGroupMessage
impl TryFrom<GroupMessageSave> for StoredGroupMessage
Source§type Error = ConversionError
type Error = ConversionError
impl Eq for StoredGroupMessage
impl StructuralPartialEq for StoredGroupMessage
Auto Trait Implementations§
impl Freeze for StoredGroupMessage
impl RefUnwindSafe for StoredGroupMessage
impl Send for StoredGroupMessage
impl Sync for StoredGroupMessage
impl Unpin for StoredGroupMessage
impl UnsafeUnpin for StoredGroupMessage
impl UnwindSafe for StoredGroupMessage
Blanket Implementations§
§impl<T> AggregateExpressionMethods for T
impl<T> AggregateExpressionMethods for T
§fn aggregate_distinct(self) -> Self::Outputwhere
Self: DistinctDsl,
fn aggregate_distinct(self) -> Self::Outputwhere
Self: DistinctDsl,
DISTINCT modifier for aggregate functions Read more§fn aggregate_all(self) -> Self::Outputwhere
Self: AllDsl,
fn aggregate_all(self) -> Self::Outputwhere
Self: AllDsl,
ALL modifier for aggregate functions Read more§fn aggregate_filter<P>(self, f: P) -> Self::Outputwhere
P: AsExpression<Bool>,
Self: FilterDsl<<P as AsExpression<Bool>>::Expression>,
fn aggregate_filter<P>(self, f: P) -> Self::Outputwhere
P: AsExpression<Bool>,
Self: FilterDsl<<P as AsExpression<Bool>>::Expression>,
§fn aggregate_order<O>(self, o: O) -> Self::Outputwhere
Self: OrderAggregateDsl<O>,
fn aggregate_order<O>(self, o: O) -> Self::Outputwhere
Self: OrderAggregateDsl<O>,
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,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> DowncastSend for T
impl<T> DowncastSend for T
§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Source§impl<C> Fetch<StoredGroupMessage> for Cwhere
C: ConnectionExt,
impl<C> Fetch<StoredGroupMessage> for Cwhere
C: ConnectionExt,
type Key = Vec<u8>
fn fetch( &self, key: &<C as Fetch<StoredGroupMessage>>::Key, ) -> Result<Option<StoredGroupMessage>, StorageError>
§impl<T> Identity for Twhere
T: ?Sized,
impl<T> Identity for Twhere
T: ?Sized,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request§impl<T> IntoSql for T
impl<T> IntoSql for T
§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Layered].§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§impl<T, DB> SelectableHelper<DB> for Twhere
T: Selectable<DB>,
DB: Backend,
impl<T, DB> SelectableHelper<DB> for Twhere
T: Selectable<DB>,
DB: Backend,
§fn as_select() -> SelectBy<T, DB>
fn as_select() -> SelectBy<T, DB>
Selectable] implementation. Read more§fn as_returning() -> SelectBy<Self, DB>
fn as_returning() -> SelectBy<Self, DB>
as_select that can be used with returning clauses