pub struct Client {
pub session: Session,
/* private fields */
}Expand description
A logged-in JMAP client: the session and the credentials, sent only to the origin the session came from.
Fields§
§session: SessionImplementations§
Source§impl Client
impl Client
Sourcepub async fn connect(
session_url: &str,
username: &str,
password: &str,
options: &Options,
) -> Result<Self>
pub async fn connect( session_url: &str, username: &str, password: &str, options: &Options, ) -> Result<Self>
Fetches the session at session_url with HTTP Basic – the address and an app password.
Sourcepub async fn connect_with_token(
session_url: &str,
access_token: &str,
options: &Options,
) -> Result<Self>
pub async fn connect_with_token( session_url: &str, access_token: &str, options: &Options, ) -> Result<Self>
Fetches the session at session_url with an OpenID Connect access token of kernoid with the scope
urn:kernoid:data – from oidc. Renew it with Client::set_access_token before it expires.
Sourcepub fn set_access_token(&self, access_token: &str)
pub fn set_access_token(&self, access_token: &str)
A new access token for this client and its clones (after oidc::refresh).
Sourcepub async fn refresh_session(&mut self) -> Result<()>
pub async fn refresh_session(&mut self) -> Result<()>
Fetches the session again (after a StateChange of the session, or to see new accounts).
Sourcepub fn primary(&self, capability: &str) -> Result<String>
pub fn primary(&self, capability: &str) -> Result<String>
The user’s own account for a capability.
Sourcepub async fn request(
&self,
using: &[&str],
calls: Vec<(&str, Value, &str)>,
) -> Result<Responses>
pub async fn request( &self, using: &[&str], calls: Vec<(&str, Value, &str)>, ) -> Result<Responses>
Runs method calls; the first method error fails them all.
Sourcepub async fn call(
&self,
using: &[&str],
name: &str,
arguments: Value,
) -> Result<Value>
pub async fn call( &self, using: &[&str], name: &str, arguments: Value, ) -> Result<Value>
One method call; its response.
Sourcepub async fn set(
&self,
using: &[&str],
kind: &str,
account: &str,
change: Value,
extra: Value,
) -> Result<Value>
pub async fn set( &self, using: &[&str], kind: &str, account: &str, change: Value, extra: Value, ) -> Result<Value>
<type>/set (RFC 8620, 5.3); the first refused change fails it. extra adds arguments
(onDestroyRemoveChildren, onExists).
Sourcepub fn download_url(
&self,
account: &str,
blob: &str,
name: &str,
kind: &str,
) -> String
pub fn download_url( &self, account: &str, blob: &str, name: &str, kind: &str, ) -> String
The URL a blob is downloaded from (RFC 8620, 6.2).
Sourcepub async fn download(
&self,
account: &str,
blob: &str,
name: &str,
kind: &str,
out: &mut (dyn AsyncWrite + Unpin + Send),
progress: &mut (dyn FnMut(u64, Option<u64>) + Send),
) -> Result<u64>
pub async fn download( &self, account: &str, blob: &str, name: &str, kind: &str, out: &mut (dyn AsyncWrite + Unpin + Send), progress: &mut (dyn FnMut(u64, Option<u64>) + Send), ) -> Result<u64>
Downloads a blob into out; progress hears the bytes so far and the whole, if the server said it.
Sourcepub async fn download_from(
&self,
account: &str,
blob: &str,
name: &str,
kind: &str,
from: u64,
out: &mut (dyn AsyncWrite + Unpin + Send),
progress: &mut (dyn FnMut(u64, Option<u64>) + Send),
) -> Result<u64>
pub async fn download_from( &self, account: &str, blob: &str, name: &str, kind: &str, from: u64, out: &mut (dyn AsyncWrite + Unpin + Send), progress: &mut (dyn FnMut(u64, Option<u64>) + Send), ) -> Result<u64>
Downloads a blob from byte from on (an HTTP range, RFC 9110, 14) into out – to go on with a download that
broke off. progress hears the bytes of the whole blob so far (from included) and its size, if the server
said it. Returns the bytes written to out. A server that sends the whole blob instead of the range is an
error: what is in out would be wrong.
Sourcepub async fn join(
&self,
account: &str,
kind: &str,
pieces: &[String],
) -> Result<Upload>
pub async fn join( &self, account: &str, kind: &str, pieces: &[String], ) -> Result<Upload>
Joins uploaded blobs, in order, into one (Blob/upload, RFC 9404) – the way to send a large file in pieces, each
of which can be sent again alone. The pieces are uploads, which the server keeps for a day.
Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for Client
impl !UnwindSafe for Client
impl Freeze for Client
impl Send for Client
impl Sync for Client
impl Unpin for Client
impl UnsafeUnpin for Client
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> FmtForward for T
impl<T> FmtForward for T
Source§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.Source§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.Source§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.Source§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.Source§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.Source§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.Source§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.Source§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
Source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
Source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
Source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.Source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.Source§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<T> Tap for T
impl<T> Tap for T
Source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read moreSource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read moreSource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read moreSource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read moreSource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.Source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.Source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.Source§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.Source§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.