pub trait JmapContactsExt: Sealed {
// Required method
fn with_contacts_session(&self, session: Session) -> SessionClient;
}Expand description
Extension trait adding JMAP Contacts methods to jmap_base_client::JmapClient.
Import this trait to use: use jmap_contacts_client::JmapContactsExt;
All JMAP Contacts method calls are made through the SessionClient
returned by with_contacts_session.
This trait is sealed: implementations outside this crate are not
permitted. The crate adds an impl only for
jmap_base_client::JmapClient. Sealing prevents downstream
divergence (e.g. impl JmapContactsExt for MySimulator) and keeps
adding methods to the trait a non-breaking change.
Required Methods§
Sourcefn with_contacts_session(&self, session: Session) -> SessionClient
fn with_contacts_session(&self, session: Session) -> SessionClient
Create a SessionClient bound to this client and session.
All JMAP Contacts method calls are made through the returned
SessionClient.
§Deferred session-capability validation
This constructor accepts ANY jmap_base_client::Session,
including one whose advertised capabilities do not include
urn:ietf:params:jmap:contacts or whose primaryAccounts map
has no entry for the contacts capability. The constructor
performs no up-front validation and never fails — its return
type is the infallible methods::SessionClient, not a
Result.
Capability and primary-account validation is deferred to every
individual method call on the returned SessionClient. If
the session is unsuitable, those per-method calls return
ClientError::InvalidSession with a description like
"no primary account for urn:ietf:params:jmap:contacts".
Callers that want to guard at the binding site can pre-check
the session before calling this method via
session.primary_account_id("urn:ietf:params:jmap:contacts").
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".