Skip to main content

Module client

Module client 

Source
Available on crate feature client only.
Expand description

§Standard, blocking WebDAV client

Holds a single boxed stream (any blocking Read + Write impl) plus the WebdavAuth credential, the user-facing pub options (base_url, user_agent) and the discovery caches (principal_url, calendar_home_set, addressbook_home_set).

The bare new constructor takes a pre-connected stream; callers handle TCP and TLS themselves. With one of the TLS feature flags enabled (rustls-ring, rustls-aws, native-tls), connect is also available and handles https:// URLs end-to-end via pimalaya_stream::std::stream::StreamStd.

Discovery flows top-down from the configured base_url (the DAV context root, resolved by pimconf’s RFC 6764 discovery upstream): current_user_principal resolves the principal URL; calendar_home_set / addressbook_home_set resolve the per-RFC home-set URL. Each step caches its result; higher-level methods return MissingPrincipal / MissingCalendarHomeSet / MissingAddressbookHomeSet when the cache is empty (mirrors io-jmap’s MissingSession).

Structs§

WebdavClientStd
Std-blocking WebDAV client wrapping a single blocking stream.

Enums§

WebdavClientStdError
Errors returned by WebdavClientStd.

Traits§

WebdavStream
Marker for everything the client can run against; auto-implemented for any blocking Read + Write + Send impl.