pub struct Profile<'a> { /* private fields */ }Expand description
Feature handle for profile operations.
Implementations§
Source§impl<'a> Profile<'a>
impl<'a> Profile<'a>
Sourcepub async fn set_status_text(&self, text: &str) -> Result<(), ProfileError>
pub async fn set_status_text(&self, text: &str) -> Result<(), ProfileError>
Set the user’s status text (about).
Uses the stable IQ-based approach matching WhatsApp Web’s WAWebSetAboutJob:
<iq type="set" xmlns="status" to="s.whatsapp.net">
<status>Hello world!</status>
</iq>Note: This sets the profile “About” text, not ephemeral text status updates.
Sourcepub async fn set_push_name(&self, name: &str) -> Result<(), ProfileError>
pub async fn set_push_name(&self, name: &str) -> Result<(), ProfileError>
Set the user’s push name (display name).
Updates the local device store, sends a presence stanza with the new name,
and propagates the change via app state sync (setting_pushName mutation
in the critical_block collection) for cross-device synchronization.
Matches WhatsApp Web’s WAWebPushNameBridge behavior:
- Send
<presence name="..."/>immediately (no type attribute) - Sync via app state mutation to
critical_blockcollection
§Wire Format
<presence name="New Name"/>Sourcepub async fn set_profile_picture(
&self,
image_data: Vec<u8>,
) -> Result<SetProfilePictureResponse, ProfileError>
pub async fn set_profile_picture( &self, image_data: Vec<u8>, ) -> Result<SetProfilePictureResponse, ProfileError>
Set the user’s own profile picture.
Sends a JPEG image as the new profile picture. The image should already be properly sized/cropped by the caller (WhatsApp typically uses 640x640).
Passing empty image_data removes the picture (matching WhatsApp Web);
call Profile::remove_profile_picture when removal is the intent.
§Wire Format
<iq type="set" xmlns="w:profile:picture" to="s.whatsapp.net">
<picture type="image">{jpeg bytes}</picture>
</iq>Sourcepub async fn remove_profile_picture(
&self,
) -> Result<SetProfilePictureResponse, ProfileError>
pub async fn remove_profile_picture( &self, ) -> Result<SetProfilePictureResponse, ProfileError>
Remove the user’s own profile picture.
Auto Trait Implementations§
impl<'a> !RefUnwindSafe for Profile<'a>
impl<'a> !UnwindSafe for Profile<'a>
impl<'a> Freeze for Profile<'a>
impl<'a> Send for Profile<'a>
impl<'a> Sync for Profile<'a>
impl<'a> Unpin for Profile<'a>
impl<'a> UnsafeUnpin for Profile<'a>
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> 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