Struct tokio_rustls_acme::AcmeConfig

source ·
pub struct AcmeConfig<EC: Debug, EA: Debug = EC> { /* private fields */ }
Expand description

Configuration for an ACME resolver.

The type parameters represent the error types for the certificate cache and account cache.

Implementations§

source§

impl AcmeConfig<Infallible, Infallible>

source

pub fn new(domains: impl IntoIterator<Item = impl AsRef<str>>) -> Self

Creates a new AcmeConfig instance.

The new AcmeConfig instance will initially have no cache, and its type parameters for error types will be Infallible since the cache cannot return an error. The methods to set a cache will change the error types to match those returned by the supplied cache.

use tokio_rustls_acme::caches::DirCache;
let config = AcmeConfig::new(["example.com"]).cache(DirCache::new("./rustls_acme_cache"));

Due to limited support for type parameter inference in Rust (see RFC213), AcmeConfig::new is not (yet) generic over the AcmeConfig’s type parameters. An uncached instance of AcmeConfig with particular type parameters can be created using NoCache.

use tokio_rustls_acme::caches::NoCache;
let config: AcmeConfig<EC, EA> = AcmeConfig::new(["example.com"]).cache(NoCache::new());
source§

impl<EC: 'static + Debug, EA: 'static + Debug> AcmeConfig<EC, EA>

source

pub fn client_tls_config(self, client_config: Arc<ClientConfig>) -> Self

Set custom rustls::ClientConfig for ACME API calls.

source

pub fn directory(self, directory_url: impl AsRef<str>) -> Self

source

pub fn directory_lets_encrypt(self, production: bool) -> Self

source

pub fn domains(self, contact: impl IntoIterator<Item = impl AsRef<str>>) -> Self

source

pub fn domains_push(self, contact: impl AsRef<str>) -> Self

source

pub fn contact(self, contact: impl IntoIterator<Item = impl AsRef<str>>) -> Self

Provide a list of contacts for the account.

Note that email addresses must include a mailto: prefix.

source

pub fn contact_push(self, contact: impl AsRef<str>) -> Self

Provide a contact for the account.

Note that an email address must include a mailto: prefix.

source

pub fn cache<C: 'static + Cache>(self, cache: C) -> AcmeConfig<C::EC, C::EA>

source

pub fn cache_compose<CC: 'static + CertCache, CA: 'static + AccountCache>( self, cert_cache: CC, account_cache: CA, ) -> AcmeConfig<CC::EC, CA::EA>

source

pub fn cache_with_boxed_err<C: 'static + Cache>( self, cache: C, ) -> AcmeConfig<Box<dyn Debug>>

source

pub fn cache_option<C: 'static + Cache>( self, cache: Option<C>, ) -> AcmeConfig<C::EC, C::EA>

source

pub fn state(self) -> AcmeState<EC, EA>

source

pub fn incoming<TCP: AsyncRead + AsyncWrite + Unpin, ETCP, ITCP: Stream<Item = Result<TCP, ETCP>> + Unpin>( self, tcp_incoming: ITCP, alpn_protocols: Vec<Vec<u8>>, ) -> Incoming<TCP, ETCP, ITCP, EC, EA>

Turn a stream of TCP connections into a stream of TLS connections.

Specify supported protocol names in alpn_protocols, most preferred first. If emtpy (Vec::new()), we don’t do ALPN.

Auto Trait Implementations§

§

impl<EC, EA> Freeze for AcmeConfig<EC, EA>

§

impl<EC, EA = EC> !RefUnwindSafe for AcmeConfig<EC, EA>

§

impl<EC, EA> Send for AcmeConfig<EC, EA>

§

impl<EC, EA> Sync for AcmeConfig<EC, EA>

§

impl<EC, EA> Unpin for AcmeConfig<EC, EA>

§

impl<EC, EA = EC> !UnwindSafe for AcmeConfig<EC, EA>

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

source§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

source§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

source§

fn implicit( self, class: Class, constructed: bool, tag: u32, ) -> TaggedParser<'a, Implicit, Self, E>

source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more