pub struct PersistedMlsPendingGroup {
pub id: Vec<u8>,
pub state: Vec<u8>,
pub parent_id: Option<Vec<u8>>,
pub custom_configuration: Vec<u8>,
}Expand description
Entity representing a temporarily persisted MlsGroup
This entity keeps its upsert semantics deliberately. Nothing updates one in place — there is a
single writer, and the row is deleted once the external join it represents is merged or
abandoned — so it reads like a candidate for a plain INSERT. It is not. join_by_external_commit
invites the caller to retry, and whether the abandoned row is still there on the retry depends on
what the caller did with the previous failure: an error crossing the FFI becomes an exception
which by default cancels the transaction, discarding the row, but a caller may catch it and carry
on with the same transaction, in which case the row survives. Both are legitimate, so the second
save has to be allowed to replace the first.
Fields§
§id: Vec<u8>§state: Vec<u8>§parent_id: Option<Vec<u8>>§custom_configuration: Vec<u8>Trait Implementations§
Source§impl BorrowPrimaryKey for PersistedMlsPendingGroup
impl BorrowPrimaryKey for PersistedMlsPendingGroup
type BorrowedPrimaryKey = [u8]
Source§impl Clone for PersistedMlsPendingGroup
impl Clone for PersistedMlsPendingGroup
Source§fn clone(&self) -> PersistedMlsPendingGroup
fn clone(&self) -> PersistedMlsPendingGroup
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 PersistedMlsPendingGroup
impl Debug for PersistedMlsPendingGroup
Source§impl<'de> Deserialize<'de> for PersistedMlsPendingGroup
impl<'de> Deserialize<'de> for PersistedMlsPendingGroup
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 Entity for PersistedMlsPendingGroup
impl Entity for PersistedMlsPendingGroup
Source§const TABLE_NAME: &'static str = "mls_pending_groups"
const TABLE_NAME: &'static str = "mls_pending_groups"
Source§fn get(conn: &Connection, key: &Vec<u8>) -> CryptoKeystoreResult<Option<Self>>
fn get(conn: &Connection, key: &Vec<u8>) -> CryptoKeystoreResult<Option<Self>>
Source§fn count(conn: &Connection) -> CryptoKeystoreResult<u32>
fn count(conn: &Connection) -> CryptoKeystoreResult<u32>
Source§fn load_all(conn: &Connection) -> CryptoKeystoreResult<Vec<Self>>
fn load_all(conn: &Connection) -> CryptoKeystoreResult<Vec<Self>>
Source§impl EntityDatabaseMutation for PersistedMlsPendingGroup
impl EntityDatabaseMutation for PersistedMlsPendingGroup
Source§type AutoGeneratedFields = ()
type AutoGeneratedFields = ()
pre_save method might generate or update some fields of the item. The canonical example is an updated_at
field. Read moreSource§fn save(&self, tx: &Transaction<'_>) -> CryptoKeystoreResult<()>
fn save(&self, tx: &Transaction<'_>) -> CryptoKeystoreResult<()>
Source§fn delete(tx: &Transaction<'_>, id: &Vec<u8>) -> CryptoKeystoreResult<bool>
fn delete(tx: &Transaction<'_>, id: &Vec<u8>) -> CryptoKeystoreResult<bool>
Source§fn pre_save(&mut self) -> CryptoKeystoreResult<Self::AutoGeneratedFields>
fn pre_save(&mut self) -> CryptoKeystoreResult<Self::AutoGeneratedFields>
Source§impl EntityDeleteBorrowed for PersistedMlsPendingGroup
impl EntityDeleteBorrowed for PersistedMlsPendingGroup
Source§fn delete_borrowed(
tx: &Transaction<'_>,
id: &[u8],
) -> CryptoKeystoreResult<bool>
fn delete_borrowed( tx: &Transaction<'_>, id: &[u8], ) -> CryptoKeystoreResult<bool>
Source§impl EntityGetBorrowed for PersistedMlsPendingGroup
impl EntityGetBorrowed for PersistedMlsPendingGroup
Source§fn get_borrowed(
conn: &Connection,
key: &[u8],
) -> CryptoKeystoreResult<Option<Self>>
fn get_borrowed( conn: &Connection, key: &[u8], ) -> CryptoKeystoreResult<Option<Self>>
impl Eq for PersistedMlsPendingGroup
Source§impl PartialEq for PersistedMlsPendingGroup
impl PartialEq for PersistedMlsPendingGroup
Source§fn eq(&self, other: &PersistedMlsPendingGroup) -> bool
fn eq(&self, other: &PersistedMlsPendingGroup) -> bool
self and other values to be equal, and is used by ==.Source§impl PrimaryKey for PersistedMlsPendingGroup
impl PrimaryKey for PersistedMlsPendingGroup
Source§type PrimaryKey = Vec<u8>
type PrimaryKey = Vec<u8>
PrimaryKey uniquely identifies either 0 or 1 instance. Read moreSource§fn primary_key(&self) -> Self::PrimaryKey
fn primary_key(&self) -> Self::PrimaryKey
Source§impl Serialize for PersistedMlsPendingGroup
impl Serialize for PersistedMlsPendingGroup
impl StructuralPartialEq for PersistedMlsPendingGroup
Source§impl ToValue for PersistedMlsPendingGroup
impl ToValue for PersistedMlsPendingGroup
Auto Trait Implementations§
impl Freeze for PersistedMlsPendingGroup
impl RefUnwindSafe for PersistedMlsPendingGroup
impl Send for PersistedMlsPendingGroup
impl Sync for PersistedMlsPendingGroup
impl Unpin for PersistedMlsPendingGroup
impl UnsafeUnpin for PersistedMlsPendingGroup
impl UnwindSafe for PersistedMlsPendingGroup
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
§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
§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
§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<T> ErasedDestructor for Twhere
T: 'static,
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