Struct ruma_client::Client
source · pub struct Client<C>(/* private fields */);
client-api
only.Expand description
A client for the Matrix client-server API.
Implementations§
source§impl<C> Client<C>
impl<C> Client<C>
sourcepub fn access_token(&self) -> Option<String>
pub fn access_token(&self) -> Option<String>
Get a copy of the current access_token
, if any.
Useful for serializing and persisting the session to be restored later.
source§impl<C: HttpClient> Client<C>
impl<C: HttpClient> Client<C>
sourcepub async fn send_request<R: OutgoingRequest>(
&self,
request: R,
) -> ResponseResult<C, R>
pub async fn send_request<R: OutgoingRequest>( &self, request: R, ) -> ResponseResult<C, R>
Makes a request to a Matrix API endpoint.
sourcepub async fn send_customized_request<R, F>(
&self,
request: R,
customize: F,
) -> ResponseResult<C, R>where
R: OutgoingRequest,
F: FnOnce(&mut Request<C::RequestBody>) -> Result<(), ResponseError<C, R>>,
pub async fn send_customized_request<R, F>(
&self,
request: R,
customize: F,
) -> ResponseResult<C, R>where
R: OutgoingRequest,
F: FnOnce(&mut Request<C::RequestBody>) -> Result<(), ResponseError<C, R>>,
Makes a request to a Matrix API endpoint including additional URL parameters.
sourcepub async fn send_request_as<R: OutgoingRequest>(
&self,
user_id: &UserId,
request: R,
) -> ResponseResult<C, R>
pub async fn send_request_as<R: OutgoingRequest>( &self, user_id: &UserId, request: R, ) -> ResponseResult<C, R>
Makes a request to a Matrix API endpoint as a virtual user.
This method is meant to be used by application services when interacting with the client-server API.
sourcepub async fn log_in(
&self,
user: &str,
password: &str,
device_id: Option<&DeviceId>,
initial_device_display_name: Option<&str>,
) -> Result<Response, Error<C::Error, Error>>
pub async fn log_in( &self, user: &str, password: &str, device_id: Option<&DeviceId>, initial_device_display_name: Option<&str>, ) -> Result<Response, Error<C::Error, Error>>
Log in with a username and password.
In contrast to send_request
, this method stores the access token
returned by the endpoint in this client, in addition to returning it.
sourcepub async fn register_guest(
&self,
) -> Result<Response, Error<C::Error, UiaaResponse>>
pub async fn register_guest( &self, ) -> Result<Response, Error<C::Error, UiaaResponse>>
Register as a guest.
In contrast to send_request
, this method stores the access token
returned by the endpoint in this client, in addition to returning it.
sourcepub async fn register_user(
&self,
username: Option<&str>,
password: &str,
) -> Result<Response, Error<C::Error, UiaaResponse>>
pub async fn register_user( &self, username: Option<&str>, password: &str, ) -> Result<Response, Error<C::Error, UiaaResponse>>
Register as a new user on this server.
In contrast to send_request
, this method stores the access token
returned by the endpoint in this client, in addition to returning it.
The username is the local part of the returned user_id. If it is omitted from this request, the server will generate one.
sourcepub fn sync(
&self,
filter: Option<Filter>,
since: String,
set_presence: PresenceState,
timeout: Option<Duration>,
) -> impl Stream<Item = Result<Response, Error<C::Error, Error>>> + '_
pub fn sync( &self, filter: Option<Filter>, since: String, set_presence: PresenceState, timeout: Option<Duration>, ) -> impl Stream<Item = Result<Response, Error<C::Error, Error>>> + '_
Convenience method that represents repeated calls to the sync_events endpoint as a stream.
§Example:
use std::time::Duration;
let mut sync_stream = Box::pin(client.sync(
None,
next_batch_token,
PresenceState::Online,
Some(Duration::from_secs(30)),
));
while let Some(response) = sync_stream.try_next().await? {
// Do something with the data in the response...
}
Trait Implementations§
Auto Trait Implementations§
impl<C> Freeze for Client<C>
impl<C> RefUnwindSafe for Client<C>where
C: RefUnwindSafe,
impl<C> Send for Client<C>
impl<C> Sync for Client<C>
impl<C> Unpin for Client<C>
impl<C> UnwindSafe for Client<C>where
C: RefUnwindSafe,
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,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)