pub enum DeviceCommand {
Show 19 variants
SetId(Option<Jid>),
SetLid(Option<Jid>),
SetPushName(String),
SetAccount(Option<ADVSignedDeviceIdentity>),
SetAppVersion((u32, u32, u32)),
SetDeviceProps(DevicePropsOverride),
SetClientProfile(ClientProfile),
SetPropsHash(Option<String>),
SetPreKeyWatermarks {
next_pre_key_id: u32,
first_unupload_pre_key_id: u32,
},
SetAdvSecretKey([u8; 32]),
SetNctSalt(Option<Vec<u8>>),
SetNctSaltFromHistorySync(Vec<u8>),
SetServerCertChain(CachedServerCertChain),
ClearServerCertChain,
IncrementLoginCounter,
SetLidMigrated(bool),
SetSignedPreKey {
key_pair: KeyPair,
id: u32,
signature: [u8; 64],
rotation_ms: i64,
},
SetSignedPreKeyRotationBaseline(i64),
SetReadReceiptsDisabled(bool),
}Variants§
SetId(Option<Jid>)
SetLid(Option<Jid>)
SetPushName(String)
SetAccount(Option<ADVSignedDeviceIdentity>)
SetAppVersion((u32, u32, u32))
SetDeviceProps(DevicePropsOverride)
SetClientProfile(ClientProfile)
SetPropsHash(Option<String>)
SetPreKeyWatermarks
Update both prekey watermarks in one command, so a generation-time NEXT advance and a FIRST init/advance can never be observed split. The watermarks have no single-field setter on purpose: split updates are how the pre-watermark model lost track of generated keys.
SetAdvSecretKey([u8; 32])
SetNctSalt(Option<Vec<u8>>)
SetNctSaltFromHistorySync(Vec<u8>)
SetServerCertChain(CachedServerCertChain)
Cache the server cert chain extracted from a successful XX (or XX-fallback) handshake. Enables Noise IK on the next connect.
ClearServerCertChain
Drop the cached server cert chain (e.g. after IK fails with a
crypto-fatal error, signalling that the cached leaf.key is stale).
Forces XX on the next connect.
IncrementLoginCounter
Bump the persisted lc (login counter) ahead of a login payload.
SetLidMigrated(bool)
Set the account’s 1:1-LID-migrated state. Runtime paths only ever set
true, like WA Web’s WAIsAccountLidFieldMigrated pref; false is
reserved for pair-success, where a fresh pairing must not inherit the
previous account’s migration state.
SetSignedPreKey
Install a freshly rotated signed pre-key (WA Web RotateKeyJob). Sets
the current key trio and stamps the rotation clock in one command so the
key and its cadence baseline can never be observed split.
SetSignedPreKeyRotationBaseline(i64)
Seed the rotation cadence baseline without touching the key. Used once
for devices upgraded in with last_signed_pre_key_rotation_ms == 0, so
the first rotation is scheduled a full interval out rather than firing
immediately on the next connect.
SetReadReceiptsDisabled(bool)
Set whether readreceipts privacy is none. true routes DM
read/played receipts through the *-self types.
Trait Implementations§
Source§impl Clone for DeviceCommand
impl Clone for DeviceCommand
Source§fn clone(&self) -> DeviceCommand
fn clone(&self) -> DeviceCommand
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl !Freeze for DeviceCommand
impl RefUnwindSafe for DeviceCommand
impl Send for DeviceCommand
impl Sync for DeviceCommand
impl Unpin for DeviceCommand
impl UnsafeUnpin for DeviceCommand
impl UnwindSafe for DeviceCommand
Blanket Implementations§
Source§impl<T> AggregateExpressionMethods for T
impl<T> AggregateExpressionMethods for T
Source§fn aggregate_distinct(self) -> Self::Outputwhere
Self: DistinctDsl,
fn aggregate_distinct(self) -> Self::Outputwhere
Self: DistinctDsl,
DISTINCT modifier for aggregate functions Read moreSource§fn aggregate_all(self) -> Self::Outputwhere
Self: AllDsl,
fn aggregate_all(self) -> Self::Outputwhere
Self: AllDsl,
ALL modifier for aggregate functions Read moreSource§fn aggregate_filter<P>(self, f: P) -> Self::Output
fn aggregate_filter<P>(self, f: P) -> Self::Output
Source§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,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§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.Source§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.Source§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.Source§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.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
impl<T> ErasedDestructor for Twhere
T: 'static,
Source§impl<T> IntoSql for T
impl<T> IntoSql for T
Source§fn into_sql<T>(self) -> Self::Expression
fn into_sql<T>(self) -> Self::Expression
self to an expression for Diesel’s query builder. Read moreSource§fn as_sql<'a, T>(&'a self) -> <&'a Self as AsExpression<T>>::Expression
fn as_sql<'a, T>(&'a self) -> <&'a Self as AsExpression<T>>::Expression
&self to an expression for Diesel’s query builder. Read more