Skip to main content

ConnectOptions

Struct ConnectOptions 

Source
pub struct ConnectOptions<'a> {
    pub username: Option<&'a str>,
    pub password: Option<&'a str>,
    pub timeout: Option<Duration>,
    pub reconnect: ReconnectBehavior,
    pub tls_config: Option<Arc<ClientConfig>>,
    pub reconnector: Option<Arc<dyn Reconnector>>,
}

Fields§

§username: Option<&'a str>§password: Option<&'a str>§timeout: Option<Duration>§reconnect: ReconnectBehavior

Whether the returned client should reconnect automatically when the WebSocket connection drops. Defaults to ReconnectBehavior::Enabled(ReconnectPolicy::default()) - set this to ReconnectBehavior::Disabled to get the old one-shot-connection behavior.

§tls_config: Option<Arc<ClientConfig>>

Custom TLS trust config for wss:// addresses. None (the default) uses tokio-tungstenite’s built-in rustls-tls-webpki-roots default, which only trusts public CAs - it cannot validate a CSMS certificate issued by a private/internal CA. Build a rustls::ClientConfig with a RootCertStore containing that CA’s certificate (and optionally client-cert auth for mTLS) and set it here to connect to such a CSMS. ocpp_client::rustls re-exports the exact rustls version this crate was built against, so the ClientConfig you build is guaranteed compatible. Reconnect attempts (see reconnect above) reuse the same config.

§reconnector: Option<Arc<dyn Reconnector>>

Decides where a dropped connection is redialled. None (the default) redials the same address, protocol, credentials and TLS config the connection started with, which is what almost every caller wants.

Supply one to make the redial target something other than a constant - the case this exists for is a charge point that must move to a different CSMS address (an OCPP 2.x network connection profile, a failover endpoint) without tearing down its Client. Reconnecting through the same Client keeps its identity, so every registered handler, every in-flight request and every queued message survives the move; dropping the client and calling connect_* again does not.

Implementations usually delegate to websocket_transport rather than building a transport by hand - see its docs for a worked reconnector. A custom reconnector is fully responsible for the redial: address and the credential/TLS fields above apply to the initial connection only and are not consulted when it runs.

ReconnectBehavior::Disabled still wins - it is an explicit “do not redial”, and supplying a reconnector does not quietly turn reconnect back on.

Trait Implementations§

Source§

impl<'a> Clone for ConnectOptions<'a>

Source§

fn clone(&self) -> ConnectOptions<'a>

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ConnectOptions<'_>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Redacts password: these options are routinely logged wholesale when a connection fails, and a CSMS credential in a log file outlives the debugging session that produced it.

Source§

impl<'a> Default for ConnectOptions<'a>

Source§

fn default() -> ConnectOptions<'a>

Returns the “default value” for a type. Read more

Auto Trait Implementations§

§

impl<'a> !RefUnwindSafe for ConnectOptions<'a>

§

impl<'a> !UnwindSafe for ConnectOptions<'a>

§

impl<'a> Freeze for ConnectOptions<'a>

§

impl<'a> Send for ConnectOptions<'a>

§

impl<'a> Sync for ConnectOptions<'a>

§

impl<'a> Unpin for ConnectOptions<'a>

§

impl<'a> UnsafeUnpin for ConnectOptions<'a>

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<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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

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

Source§

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>,

Source§

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<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

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