Skip to main content

Client

Struct Client 

Source
pub struct Client<E: ProtocolError> { /* private fields */ }
Expand description

The OCPP client engine, generic over one version’s protocol error type. OCPP1_6Client and OCPP2_0_1Client are just Client<OCPP1_6Error> / Client<OCPP2_0_1Error> - the dispatch/timeout/error machinery below is written once and shared by every version.

Implementations§

Source§

impl<E: ProtocolError> Client<E>

Source

pub fn from_transport( sink: Box<dyn TransportSink>, stream: Box<dyn TransportStream>, timeout: Duration, executor: Box<dyn Executor>, timer: Box<dyn Timer>, ) -> Self

Build a client over any transport - the WebSocket adapter used by connect_1_6 is just one implementation of TransportSink/TransportStream; tests and non-WebSocket transports (an embedded framed link, an in-memory fake for unit tests) construct a client the same way. executor/timer are likewise pluggable: the tokio-runtime feature provides TokioExecutor/TokioTimer; embedded users supply their own (e.g. backed by embassy-executor/embassy-time).

Source

pub fn from_transport_with_reconnect( sink: Box<dyn TransportSink>, stream: Box<dyn TransportStream>, timeout: Duration, executor: Box<dyn Executor>, timer: Box<dyn Timer>, reconnector: Option<Box<dyn Reconnector>>, reconnect_policy: ReconnectPolicy, ) -> Self

Same as Client::from_transport, but with automatic reconnect: when the transport closes (TransportStream::recv returns Ok(None)/Err(_)), the background read loop calls reconnector.connect() (backing off per reconnect_policy between failed attempts) instead of exiting, and swaps in the new transport once one succeeds. reconnector: None reproduces from_transport’s behavior - the read loop exits on disconnect and the client goes quiet. connect_1_6/connect_2_0_1/connect_2_1 use this constructor with a WebSocket-backed Reconnector.

Source

pub fn from_transport_with_config( sink: Box<dyn TransportSink>, stream: Box<dyn TransportStream>, executor: Box<dyn Executor>, timer: Box<dyn Timer>, config: ClientConfig, ) -> Self

The constructor the other two delegate to: everything optional lives in ClientConfig instead of a growing positional parameter list.

Spawns two background tasks on executor: the read loop, and a keepalive task. The keepalive task is spawned even when config.keepalive is Disabled, where it simply parks until someone calls Client::set_ping_interval - otherwise a client built with keepalive off could never have it turned on later, which is exactly what a CSMS writing WebSocketPingInterval needs to do.

Source

pub async fn call<A: Action>( &self, request: A::Request, ) -> Result<A::Response, ClientError<E>>

Send a CALL for A and wait for the matching CALLRESULT/CALLERROR.

Source

pub async fn on<A, F, FF>(&self, callback: F)
where A: Action, F: FnMut(A::Request, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<A::Response, E>> + Send,

Register a handler for CALLs the other side sends for action A. Replaces any previously registered handler for the same action.

Source

pub async fn wait_for<A, F, FF>( &self, callback: F, ) -> Result<A::Request, ClientError<E>>
where A: Action, F: FnMut(A::Request, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<A::Response, E>> + Send,

Wait for exactly one CALL for action A (bounded by the client’s timeout), answer it with callback, and return the parsed request. Only useful in tests.

The registration is removed again on the way out, whichever way that is. Leaving it in place left the action bound to a channel with no reader, so any later CALL for it was queued and silently forgotten - the peer got no CALLRESULT and no CALLERROR either, which looks exactly like the client having hung.

Note this does not restore a handler that Client::on had registered for the same action beforehand; registering replaces, as on’s own docs say.

Source

pub async fn send_notification<A: SendAction>( &self, payload: A::Payload, ) -> Result<(), ClientError<E>>

Send a SEND (OCPP-J 2.1 only) fire-and-forget message: writes the frame and returns as soon as the transport accepts it - no waiter, no timeout, since the spec forbids the receiver from ever replying to a SEND.

Source

pub async fn on_notification<A, F, FF>(&self, callback: F)
where A: SendAction, F: FnMut(A::Payload, Self) -> FF + Send + Sync + 'static, FF: Future<Output = ()> + Send,

Register a handler for SEND (OCPP-J 2.1 only) messages of action A. Unlike Client::on, callback returns nothing - the spec forbids replying to a SEND, so there’s no response to send back. Replaces any previously registered handler for the same action.

Source

pub async fn send_ping(&self) -> Result<(), ClientError<E>>

Send one ping and wait for the matching pong, bounded by the client’s timeout.

The pong is matched by correlation token, not arrival order: the ping carries an 8-byte token as its payload and only a pong echoing that exact payload resolves this call. RFC 6455 requires peers to echo ping payloads, so this is exact against any compliant server; a pong that echoes something else is ignored, and this call times out.

This is the manual, one-shot ping. For scheduled keepalive - including detecting a peer that has stopped answering and forcing a redial - see Client::set_ping_interval and KeepaliveBehavior.

Source

pub async fn pending_request_count(&self) -> usize

How many requests are still waiting for a CALLRESULT/CALLERROR.

Test-only instrumentation: this table is bookkeeping that should return to zero once every request has either been answered or given up, and a leak in it is otherwise invisible from outside - it shows up only as memory growth on a charge point that has been running for weeks. tests/ocpp_1_6_bookkeeping.rs asserts on it.

Source

pub async fn pending_ping_count(&self) -> usize

How many pings are still waiting for a pong. Test-only, same rationale as Client::pending_request_count.

Source

pub fn ping_interval(&self) -> Option<Duration>

The keepalive ping interval currently in force, or None when keepalive is off.

This is the value to report for OCPPCommCtrlr.WebSocketPingInterval (2.0.1/2.1) or the WebSocketPingInterval configuration key (1.6) - None maps to the spec’s 0. Cheap and non-blocking, so a GetVariables/GetConfiguration handler can call it directly.

Source

pub fn set_ping_interval(&self, interval: Option<Duration>)

Change the keepalive ping interval on a live connection, for a CSMS writing WebSocketPingInterval via SetVariables/ChangeConfiguration.

None - or Some(Duration::ZERO), matching the spec’s 0 - disables pinging. Takes effect immediately: the keepalive task is woken rather than finishing the interval it was already waiting out, so shortening a 1-hour interval doesn’t take up to an hour to apply. Enabling works even on a client built with KeepaliveBehavior::Disabled.

Source

pub fn force_reconnect(&self)

Abandon the current transport and redial, without waiting for it to notice it is dead.

This is what keepalive escalates to after KeepalivePolicy::max_missed unanswered pings, exposed because a caller with its own liveness signal (an application-level heartbeat going unanswered, say) has the same problem. A half-open TCP connection can otherwise keep the read loop parked until the OS timeout, which no amount of protocol-level bookkeeping can shorten.

No-op when the client was built without a reconnector: there would be nothing to redial with, and dropping the current connection anyway would just make the client deaf.

Source

pub async fn on_ping<F: FnMut(Self) -> FF + Send + Sync + 'static, FF: Future<Output = ()> + Send>( &self, callback: F, )

Source

pub async fn on_reconnect<F: FnMut(Self) -> FF + Send + Sync + 'static, FF: Future<Output = ()> + Send>( &self, callback: F, )

Register a callback that fires every time the background read loop redials successfully after a disconnect (see Client::from_transport_with_reconnect). Never fires for the initial connection, only for later reconnects - the initial Client is already handed back post-connect, so callers run their own post-connect setup (e.g. BootNotification) right after connect_1_6/from_transport_with_reconnect returns. This is the hook for redoing that setup (or resyncing any other session state) after a dropped-and-restored connection; this crate does not re-run BootNotification or replay any state on its own.

Source

pub async fn disconnect(&self) -> Result<(), ClientError<E>>

Shut this client down for good: close the transport, stop the read loop, stop keepalive, and do not redial.

The shutdown is sticky and takes precedence over every automatic recovery path. That matters because closing the transport looks exactly like a dropped connection from the read loop’s side - it previously produced an EOF the reconnector dutifully redialled, so on the default crate::ConnectOptions (reconnect enabled) there was no way to stop a client at all. After this returns:

  • the read loop has been told to exit rather than redial, whether it was parked in recv or sees the EOF from the close;
  • the keepalive task stops pinging, and Client::set_ping_interval cannot restart it;
  • Client::force_reconnect is a no-op;
  • further call/send_*/send_ping return ClientError::Closed instead of writing to a dead transport and waiting out the timeout.

Idempotent: calling it again is a no-op returning Ok(()). Reconnecting afterwards means building a new Client.

This only covers deliberate shutdown. An unrequested drop is still redialled as before.

Source

pub fn is_closed(&self) -> bool

Whether Client::disconnect has been called.

This reflects deliberate shutdown only - it stays false while a connection is dropped and being redialled, because such a client is still live and will resume on its own. There is deliberately no “is the socket up right now” accessor: it would be stale the moment it returned, and Client::on_reconnect is the reliable way to observe reconnection.

Source§

impl Client<OCPP1_6Error>

Source

pub async fn send_authorize( &self, request: AuthorizeRequest, ) -> Result<AuthorizeResponse, ClientError<OCPP1_6Error>>

Source

pub async fn on_authorize<F, FF>(&self, callback: F)
where F: FnMut(AuthorizeRequest, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<AuthorizeResponse, OCPP1_6Error>> + Send,

Source

pub async fn wait_for_authorize<F, FF>( &self, callback: F, ) -> Result<AuthorizeRequest, ClientError<OCPP1_6Error>>
where F: FnMut(AuthorizeRequest, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<AuthorizeResponse, OCPP1_6Error>> + Send,

Source§

impl Client<OCPP1_6Error>

Source

pub async fn send_boot_notification( &self, request: BootNotificationRequest, ) -> Result<BootNotificationResponse, ClientError<OCPP1_6Error>>

Source

pub async fn on_boot_notification<F, FF>(&self, callback: F)
where F: FnMut(BootNotificationRequest, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<BootNotificationResponse, OCPP1_6Error>> + Send,

Source

pub async fn wait_for_boot_notification<F, FF>( &self, callback: F, ) -> Result<BootNotificationRequest, ClientError<OCPP1_6Error>>
where F: FnMut(BootNotificationRequest, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<BootNotificationResponse, OCPP1_6Error>> + Send,

Source§

impl Client<OCPP1_6Error>

Source§

impl Client<OCPP1_6Error>

Source§

impl Client<OCPP1_6Error>

Source§

impl Client<OCPP1_6Error>

Source§

impl Client<OCPP1_6Error>

Source

pub async fn send_clear_cache( &self, request: ClearCacheRequest, ) -> Result<ClearCacheResponse, ClientError<OCPP1_6Error>>

Source

pub async fn on_clear_cache<F, FF>(&self, callback: F)
where F: FnMut(ClearCacheRequest, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<ClearCacheResponse, OCPP1_6Error>> + Send,

Source

pub async fn wait_for_clear_cache<F, FF>( &self, callback: F, ) -> Result<ClearCacheRequest, ClientError<OCPP1_6Error>>
where F: FnMut(ClearCacheRequest, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<ClearCacheResponse, OCPP1_6Error>> + Send,

Source§

impl Client<OCPP1_6Error>

Source§

impl Client<OCPP1_6Error>

Source

pub async fn send_data_transfer( &self, request: DataTransferRequest, ) -> Result<DataTransferResponse, ClientError<OCPP1_6Error>>

Source

pub async fn on_data_transfer<F, FF>(&self, callback: F)
where F: FnMut(DataTransferRequest, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<DataTransferResponse, OCPP1_6Error>> + Send,

Source

pub async fn wait_for_data_transfer<F, FF>( &self, callback: F, ) -> Result<DataTransferRequest, ClientError<OCPP1_6Error>>
where F: FnMut(DataTransferRequest, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<DataTransferResponse, OCPP1_6Error>> + Send,

Source§

impl Client<OCPP1_6Error>

Source§

impl Client<OCPP1_6Error>

Source§

impl Client<OCPP1_6Error>

Source§

impl Client<OCPP1_6Error>

Source§

impl Client<OCPP1_6Error>

Source§

impl Client<OCPP1_6Error>

Source

pub async fn send_get_configuration( &self, request: GetConfigurationRequest, ) -> Result<GetConfigurationResponse, ClientError<OCPP1_6Error>>

Source

pub async fn on_get_configuration<F, FF>(&self, callback: F)
where F: FnMut(GetConfigurationRequest, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<GetConfigurationResponse, OCPP1_6Error>> + Send,

Source

pub async fn wait_for_get_configuration<F, FF>( &self, callback: F, ) -> Result<GetConfigurationRequest, ClientError<OCPP1_6Error>>
where F: FnMut(GetConfigurationRequest, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<GetConfigurationResponse, OCPP1_6Error>> + Send,

Source§

impl Client<OCPP1_6Error>

Source

pub async fn send_get_diagnostics( &self, request: GetDiagnosticsRequest, ) -> Result<GetDiagnosticsResponse, ClientError<OCPP1_6Error>>

Source

pub async fn on_get_diagnostics<F, FF>(&self, callback: F)
where F: FnMut(GetDiagnosticsRequest, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<GetDiagnosticsResponse, OCPP1_6Error>> + Send,

Source

pub async fn wait_for_get_diagnostics<F, FF>( &self, callback: F, ) -> Result<GetDiagnosticsRequest, ClientError<OCPP1_6Error>>
where F: FnMut(GetDiagnosticsRequest, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<GetDiagnosticsResponse, OCPP1_6Error>> + Send,

Source§

impl Client<OCPP1_6Error>

Source§

impl Client<OCPP1_6Error>

Source§

impl Client<OCPP1_6Error>

Source

pub async fn send_get_log( &self, request: GetLogRequest, ) -> Result<GetLogResponse, ClientError<OCPP1_6Error>>

Source

pub async fn on_get_log<F, FF>(&self, callback: F)
where F: FnMut(GetLogRequest, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<GetLogResponse, OCPP1_6Error>> + Send,

Source

pub async fn wait_for_get_log<F, FF>( &self, callback: F, ) -> Result<GetLogRequest, ClientError<OCPP1_6Error>>
where F: FnMut(GetLogRequest, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<GetLogResponse, OCPP1_6Error>> + Send,

Source§

impl Client<OCPP1_6Error>

Source

pub async fn send_heartbeat( &self, request: HeartbeatRequest, ) -> Result<HeartbeatResponse, ClientError<OCPP1_6Error>>

Source

pub async fn on_heartbeat<F, FF>(&self, callback: F)
where F: FnMut(HeartbeatRequest, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<HeartbeatResponse, OCPP1_6Error>> + Send,

Source

pub async fn wait_for_heartbeat<F, FF>( &self, callback: F, ) -> Result<HeartbeatRequest, ClientError<OCPP1_6Error>>
where F: FnMut(HeartbeatRequest, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<HeartbeatResponse, OCPP1_6Error>> + Send,

Source§

impl Client<OCPP1_6Error>

Source§

impl Client<OCPP1_6Error>

Source§

impl Client<OCPP1_6Error>

Source

pub async fn send_meter_values( &self, request: MeterValuesRequest, ) -> Result<MeterValuesResponse, ClientError<OCPP1_6Error>>

Source

pub async fn on_meter_values<F, FF>(&self, callback: F)
where F: FnMut(MeterValuesRequest, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<MeterValuesResponse, OCPP1_6Error>> + Send,

Source

pub async fn wait_for_meter_values<F, FF>( &self, callback: F, ) -> Result<MeterValuesRequest, ClientError<OCPP1_6Error>>
where F: FnMut(MeterValuesRequest, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<MeterValuesResponse, OCPP1_6Error>> + Send,

Source§

impl Client<OCPP1_6Error>

Source§

impl Client<OCPP1_6Error>

Source§

impl Client<OCPP1_6Error>

Source

pub async fn send_reserve_now( &self, request: ReserveNowRequest, ) -> Result<ReserveNowResponse, ClientError<OCPP1_6Error>>

Source

pub async fn on_reserve_now<F, FF>(&self, callback: F)
where F: FnMut(ReserveNowRequest, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<ReserveNowResponse, OCPP1_6Error>> + Send,

Source

pub async fn wait_for_reserve_now<F, FF>( &self, callback: F, ) -> Result<ReserveNowRequest, ClientError<OCPP1_6Error>>
where F: FnMut(ReserveNowRequest, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<ReserveNowResponse, OCPP1_6Error>> + Send,

Source§

impl Client<OCPP1_6Error>

Source

pub async fn send_reset( &self, request: ResetRequest, ) -> Result<ResetResponse, ClientError<OCPP1_6Error>>

Source

pub async fn on_reset<F, FF>(&self, callback: F)
where F: FnMut(ResetRequest, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<ResetResponse, OCPP1_6Error>> + Send,

Source

pub async fn wait_for_reset<F, FF>( &self, callback: F, ) -> Result<ResetRequest, ClientError<OCPP1_6Error>>
where F: FnMut(ResetRequest, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<ResetResponse, OCPP1_6Error>> + Send,

Source§

impl Client<OCPP1_6Error>

Source§

impl Client<OCPP1_6Error>

Source

pub async fn send_send_local_list( &self, request: SendLocalListRequest, ) -> Result<SendLocalListResponse, ClientError<OCPP1_6Error>>

Source

pub async fn on_send_local_list<F, FF>(&self, callback: F)
where F: FnMut(SendLocalListRequest, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<SendLocalListResponse, OCPP1_6Error>> + Send,

Source

pub async fn wait_for_send_local_list<F, FF>( &self, callback: F, ) -> Result<SendLocalListRequest, ClientError<OCPP1_6Error>>
where F: FnMut(SendLocalListRequest, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<SendLocalListResponse, OCPP1_6Error>> + Send,

Source§

impl Client<OCPP1_6Error>

Source§

impl Client<OCPP1_6Error>

Source

pub async fn send_sign_certificate( &self, request: SignCertificateRequest, ) -> Result<SignCertificateResponse, ClientError<OCPP1_6Error>>

Source

pub async fn on_sign_certificate<F, FF>(&self, callback: F)
where F: FnMut(SignCertificateRequest, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<SignCertificateResponse, OCPP1_6Error>> + Send,

Source

pub async fn wait_for_sign_certificate<F, FF>( &self, callback: F, ) -> Result<SignCertificateRequest, ClientError<OCPP1_6Error>>
where F: FnMut(SignCertificateRequest, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<SignCertificateResponse, OCPP1_6Error>> + Send,

Source§

impl Client<OCPP1_6Error>

Source§

impl Client<OCPP1_6Error>

Source§

impl Client<OCPP1_6Error>

Source

pub async fn send_start_transaction( &self, request: StartTransactionRequest, ) -> Result<StartTransactionResponse, ClientError<OCPP1_6Error>>

Source

pub async fn on_start_transaction<F, FF>(&self, callback: F)
where F: FnMut(StartTransactionRequest, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<StartTransactionResponse, OCPP1_6Error>> + Send,

Source

pub async fn wait_for_start_transaction<F, FF>( &self, callback: F, ) -> Result<StartTransactionRequest, ClientError<OCPP1_6Error>>
where F: FnMut(StartTransactionRequest, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<StartTransactionResponse, OCPP1_6Error>> + Send,

Source§

impl Client<OCPP1_6Error>

Source§

impl Client<OCPP1_6Error>

Source

pub async fn send_stop_transaction( &self, request: StopTransactionRequest, ) -> Result<StopTransactionResponse, ClientError<OCPP1_6Error>>

Source

pub async fn on_stop_transaction<F, FF>(&self, callback: F)
where F: FnMut(StopTransactionRequest, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<StopTransactionResponse, OCPP1_6Error>> + Send,

Source

pub async fn wait_for_stop_transaction<F, FF>( &self, callback: F, ) -> Result<StopTransactionRequest, ClientError<OCPP1_6Error>>
where F: FnMut(StopTransactionRequest, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<StopTransactionResponse, OCPP1_6Error>> + Send,

Source§

impl Client<OCPP1_6Error>

Source

pub async fn send_trigger_message( &self, request: TriggerMessageRequest, ) -> Result<TriggerMessageResponse, ClientError<OCPP1_6Error>>

Source

pub async fn on_trigger_message<F, FF>(&self, callback: F)
where F: FnMut(TriggerMessageRequest, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<TriggerMessageResponse, OCPP1_6Error>> + Send,

Source

pub async fn wait_for_trigger_message<F, FF>( &self, callback: F, ) -> Result<TriggerMessageRequest, ClientError<OCPP1_6Error>>
where F: FnMut(TriggerMessageRequest, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<TriggerMessageResponse, OCPP1_6Error>> + Send,

Source§

impl Client<OCPP1_6Error>

Source

pub async fn send_unlock_connector( &self, request: UnlockConnectorRequest, ) -> Result<UnlockConnectorResponse, ClientError<OCPP1_6Error>>

Source

pub async fn on_unlock_connector<F, FF>(&self, callback: F)
where F: FnMut(UnlockConnectorRequest, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<UnlockConnectorResponse, OCPP1_6Error>> + Send,

Source

pub async fn wait_for_unlock_connector<F, FF>( &self, callback: F, ) -> Result<UnlockConnectorRequest, ClientError<OCPP1_6Error>>
where F: FnMut(UnlockConnectorRequest, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<UnlockConnectorResponse, OCPP1_6Error>> + Send,

Source§

impl Client<OCPP1_6Error>

Source

pub async fn send_update_firmware( &self, request: UpdateFirmwareRequest, ) -> Result<UpdateFirmwareResponse, ClientError<OCPP1_6Error>>

Source

pub async fn on_update_firmware<F, FF>(&self, callback: F)
where F: FnMut(UpdateFirmwareRequest, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<UpdateFirmwareResponse, OCPP1_6Error>> + Send,

Source

pub async fn wait_for_update_firmware<F, FF>( &self, callback: F, ) -> Result<UpdateFirmwareRequest, ClientError<OCPP1_6Error>>
where F: FnMut(UpdateFirmwareRequest, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<UpdateFirmwareResponse, OCPP1_6Error>> + Send,

Source§

impl Client<OCPP2_0_1Error>

Source

pub async fn send_authorize( &self, request: AuthorizeRequest<CustomData>, ) -> Result<AuthorizeResponse<CustomData>, ClientError<OCPP2_0_1Error>>

Source

pub async fn on_authorize<F, FF>(&self, callback: F)
where F: FnMut(AuthorizeRequest<CustomData>, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<AuthorizeResponse<CustomData>, OCPP2_0_1Error>> + Send,

Source

pub async fn wait_for_authorize<F, FF>( &self, callback: F, ) -> Result<AuthorizeRequest<CustomData>, ClientError<OCPP2_0_1Error>>
where F: FnMut(AuthorizeRequest<CustomData>, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<AuthorizeResponse<CustomData>, OCPP2_0_1Error>> + Send,

Source§

impl Client<OCPP2_0_1Error>

Source§

impl Client<OCPP2_0_1Error>

Source§

impl Client<OCPP2_0_1Error>

Source§

impl Client<OCPP2_0_1Error>

Source§

impl Client<OCPP2_0_1Error>

Source

pub async fn send_clear_cache( &self, request: ClearCacheRequest<CustomData>, ) -> Result<ClearCacheResponse<CustomData>, ClientError<OCPP2_0_1Error>>

Source

pub async fn on_clear_cache<F, FF>(&self, callback: F)
where F: FnMut(ClearCacheRequest<CustomData>, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<ClearCacheResponse<CustomData>, OCPP2_0_1Error>> + Send,

Source

pub async fn wait_for_clear_cache<F, FF>( &self, callback: F, ) -> Result<ClearCacheRequest<CustomData>, ClientError<OCPP2_0_1Error>>
where F: FnMut(ClearCacheRequest<CustomData>, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<ClearCacheResponse<CustomData>, OCPP2_0_1Error>> + Send,

Source§

impl Client<OCPP2_0_1Error>

Source§

impl Client<OCPP2_0_1Error>

Source§

impl Client<OCPP2_0_1Error>

Source§

impl Client<OCPP2_0_1Error>

Source§

impl Client<OCPP2_0_1Error>

Source

pub async fn send_cost_updated( &self, request: CostUpdatedRequest<CustomData>, ) -> Result<CostUpdatedResponse<CustomData>, ClientError<OCPP2_0_1Error>>

Source

pub async fn on_cost_updated<F, FF>(&self, callback: F)
where F: FnMut(CostUpdatedRequest<CustomData>, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<CostUpdatedResponse<CustomData>, OCPP2_0_1Error>> + Send,

Source

pub async fn wait_for_cost_updated<F, FF>( &self, callback: F, ) -> Result<CostUpdatedRequest<CustomData>, ClientError<OCPP2_0_1Error>>
where F: FnMut(CostUpdatedRequest<CustomData>, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<CostUpdatedResponse<CustomData>, OCPP2_0_1Error>> + Send,

Source§

impl Client<OCPP2_0_1Error>

Source§

impl Client<OCPP2_0_1Error>

Source§

impl Client<OCPP2_0_1Error>

Source§

impl Client<OCPP2_0_1Error>

Source§

impl Client<OCPP2_0_1Error>

Source§

impl Client<OCPP2_0_1Error>

Source§

impl Client<OCPP2_0_1Error>

Source§

impl Client<OCPP2_0_1Error>

Source§

impl Client<OCPP2_0_1Error>

Source§

impl Client<OCPP2_0_1Error>

Source§

impl Client<OCPP2_0_1Error>

Source§

impl Client<OCPP2_0_1Error>

Source§

impl Client<OCPP2_0_1Error>

Source

pub async fn send_get_log( &self, request: GetLogRequest<CustomData>, ) -> Result<GetLogResponse<CustomData>, ClientError<OCPP2_0_1Error>>

Source

pub async fn on_get_log<F, FF>(&self, callback: F)
where F: FnMut(GetLogRequest<CustomData>, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<GetLogResponse<CustomData>, OCPP2_0_1Error>> + Send,

Source

pub async fn wait_for_get_log<F, FF>( &self, callback: F, ) -> Result<GetLogRequest<CustomData>, ClientError<OCPP2_0_1Error>>
where F: FnMut(GetLogRequest<CustomData>, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<GetLogResponse<CustomData>, OCPP2_0_1Error>> + Send,

Source§

impl Client<OCPP2_0_1Error>

Source§

impl Client<OCPP2_0_1Error>

Source

pub async fn send_get_report( &self, request: GetReportRequest<CustomData>, ) -> Result<GetReportResponse<CustomData>, ClientError<OCPP2_0_1Error>>

Source

pub async fn on_get_report<F, FF>(&self, callback: F)
where F: FnMut(GetReportRequest<CustomData>, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<GetReportResponse<CustomData>, OCPP2_0_1Error>> + Send,

Source

pub async fn wait_for_get_report<F, FF>( &self, callback: F, ) -> Result<GetReportRequest<CustomData>, ClientError<OCPP2_0_1Error>>
where F: FnMut(GetReportRequest<CustomData>, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<GetReportResponse<CustomData>, OCPP2_0_1Error>> + Send,

Source§

impl Client<OCPP2_0_1Error>

Source§

impl Client<OCPP2_0_1Error>

Source§

impl Client<OCPP2_0_1Error>

Source

pub async fn send_heartbeat( &self, request: HeartbeatRequest<CustomData>, ) -> Result<HeartbeatResponse<CustomData>, ClientError<OCPP2_0_1Error>>

Source

pub async fn on_heartbeat<F, FF>(&self, callback: F)
where F: FnMut(HeartbeatRequest<CustomData>, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<HeartbeatResponse<CustomData>, OCPP2_0_1Error>> + Send,

Source

pub async fn wait_for_heartbeat<F, FF>( &self, callback: F, ) -> Result<HeartbeatRequest<CustomData>, ClientError<OCPP2_0_1Error>>
where F: FnMut(HeartbeatRequest<CustomData>, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<HeartbeatResponse<CustomData>, OCPP2_0_1Error>> + Send,

Source§

impl Client<OCPP2_0_1Error>

Source§

impl Client<OCPP2_0_1Error>

Source§

impl Client<OCPP2_0_1Error>

Source

pub async fn send_meter_values( &self, request: MeterValuesRequest<CustomData>, ) -> Result<MeterValuesResponse<CustomData>, ClientError<OCPP2_0_1Error>>

Source

pub async fn on_meter_values<F, FF>(&self, callback: F)
where F: FnMut(MeterValuesRequest<CustomData>, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<MeterValuesResponse<CustomData>, OCPP2_0_1Error>> + Send,

Source

pub async fn wait_for_meter_values<F, FF>( &self, callback: F, ) -> Result<MeterValuesRequest<CustomData>, ClientError<OCPP2_0_1Error>>
where F: FnMut(MeterValuesRequest<CustomData>, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<MeterValuesResponse<CustomData>, OCPP2_0_1Error>> + Send,

Source§

impl Client<OCPP2_0_1Error>

Source§

impl Client<OCPP2_0_1Error>

Source§

impl Client<OCPP2_0_1Error>

Source§

impl Client<OCPP2_0_1Error>

Source§

impl Client<OCPP2_0_1Error>

Source§

impl Client<OCPP2_0_1Error>

Source

pub async fn send_notify_event( &self, request: NotifyEventRequest<CustomData>, ) -> Result<NotifyEventResponse<CustomData>, ClientError<OCPP2_0_1Error>>

Source

pub async fn on_notify_event<F, FF>(&self, callback: F)
where F: FnMut(NotifyEventRequest<CustomData>, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<NotifyEventResponse<CustomData>, OCPP2_0_1Error>> + Send,

Source

pub async fn wait_for_notify_event<F, FF>( &self, callback: F, ) -> Result<NotifyEventRequest<CustomData>, ClientError<OCPP2_0_1Error>>
where F: FnMut(NotifyEventRequest<CustomData>, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<NotifyEventResponse<CustomData>, OCPP2_0_1Error>> + Send,

Source§

impl Client<OCPP2_0_1Error>

Source§

impl Client<OCPP2_0_1Error>

Source§

impl Client<OCPP2_0_1Error>

Source§

impl Client<OCPP2_0_1Error>

Source§

impl Client<OCPP2_0_1Error>

Source§

impl Client<OCPP2_0_1Error>

Source§

impl Client<OCPP2_0_1Error>

Source§

impl Client<OCPP2_0_1Error>

Source§

impl Client<OCPP2_0_1Error>

Source

pub async fn send_reserve_now( &self, request: ReserveNowRequest<CustomData>, ) -> Result<ReserveNowResponse<CustomData>, ClientError<OCPP2_0_1Error>>

Source

pub async fn on_reserve_now<F, FF>(&self, callback: F)
where F: FnMut(ReserveNowRequest<CustomData>, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<ReserveNowResponse<CustomData>, OCPP2_0_1Error>> + Send,

Source

pub async fn wait_for_reserve_now<F, FF>( &self, callback: F, ) -> Result<ReserveNowRequest<CustomData>, ClientError<OCPP2_0_1Error>>
where F: FnMut(ReserveNowRequest<CustomData>, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<ReserveNowResponse<CustomData>, OCPP2_0_1Error>> + Send,

Source§

impl Client<OCPP2_0_1Error>

Source

pub async fn send_reset( &self, request: ResetRequest<CustomData>, ) -> Result<ResetResponse<CustomData>, ClientError<OCPP2_0_1Error>>

Source

pub async fn on_reset<F, FF>(&self, callback: F)
where F: FnMut(ResetRequest<CustomData>, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<ResetResponse<CustomData>, OCPP2_0_1Error>> + Send,

Source

pub async fn wait_for_reset<F, FF>( &self, callback: F, ) -> Result<ResetRequest<CustomData>, ClientError<OCPP2_0_1Error>>
where F: FnMut(ResetRequest<CustomData>, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<ResetResponse<CustomData>, OCPP2_0_1Error>> + Send,

Source§

impl Client<OCPP2_0_1Error>

Source§

impl Client<OCPP2_0_1Error>

Source§

impl Client<OCPP2_0_1Error>

Source§

impl Client<OCPP2_0_1Error>

Source§

impl Client<OCPP2_0_1Error>

Source§

impl Client<OCPP2_0_1Error>

Source§

impl Client<OCPP2_0_1Error>

Source§

impl Client<OCPP2_0_1Error>

Source§

impl Client<OCPP2_0_1Error>

Source§

impl Client<OCPP2_0_1Error>

Source§

impl Client<OCPP2_0_1Error>

Source§

impl Client<OCPP2_0_1Error>

Source§

impl Client<OCPP2_0_1Error>

Source§

impl Client<OCPP2_0_1Error>

Source§

impl Client<OCPP2_0_1Error>

Source§

impl Client<OCPP2_0_1Error>

Source§

impl Client<OCPP2_1Error>

Source§

impl Client<OCPP2_1Error>

Source

pub async fn send_afrr_signal( &self, request: AFRRSignalRequest<CustomData>, ) -> Result<AFRRSignalResponse<CustomData>, ClientError<OCPP2_1Error>>

Source

pub async fn on_afrr_signal<F, FF>(&self, callback: F)
where F: FnMut(AFRRSignalRequest<CustomData>, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<AFRRSignalResponse<CustomData>, OCPP2_1Error>> + Send,

Source

pub async fn wait_for_afrr_signal<F, FF>( &self, callback: F, ) -> Result<AFRRSignalRequest<CustomData>, ClientError<OCPP2_1Error>>
where F: FnMut(AFRRSignalRequest<CustomData>, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<AFRRSignalResponse<CustomData>, OCPP2_1Error>> + Send,

Source§

impl Client<OCPP2_1Error>

Source

pub async fn send_authorize( &self, request: AuthorizeRequest<CustomData>, ) -> Result<AuthorizeResponse<CustomData>, ClientError<OCPP2_1Error>>

Source

pub async fn on_authorize<F, FF>(&self, callback: F)
where F: FnMut(AuthorizeRequest<CustomData>, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<AuthorizeResponse<CustomData>, OCPP2_1Error>> + Send,

Source

pub async fn wait_for_authorize<F, FF>( &self, callback: F, ) -> Result<AuthorizeRequest<CustomData>, ClientError<OCPP2_1Error>>
where F: FnMut(AuthorizeRequest<CustomData>, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<AuthorizeResponse<CustomData>, OCPP2_1Error>> + Send,

Source§

impl Client<OCPP2_1Error>

Source

pub async fn send_battery_swap( &self, request: BatterySwapRequest<CustomData>, ) -> Result<BatterySwapResponse<CustomData>, ClientError<OCPP2_1Error>>

Source

pub async fn on_battery_swap<F, FF>(&self, callback: F)
where F: FnMut(BatterySwapRequest<CustomData>, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<BatterySwapResponse<CustomData>, OCPP2_1Error>> + Send,

Source

pub async fn wait_for_battery_swap<F, FF>( &self, callback: F, ) -> Result<BatterySwapRequest<CustomData>, ClientError<OCPP2_1Error>>
where F: FnMut(BatterySwapRequest<CustomData>, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<BatterySwapResponse<CustomData>, OCPP2_1Error>> + Send,

Source§

impl Client<OCPP2_1Error>

Source§

impl Client<OCPP2_1Error>

Source§

impl Client<OCPP2_1Error>

Source§

impl Client<OCPP2_1Error>

Source§

impl Client<OCPP2_1Error>

Source§

impl Client<OCPP2_1Error>

Source

pub async fn send_clear_cache( &self, request: ClearCacheRequest<CustomData>, ) -> Result<ClearCacheResponse<CustomData>, ClientError<OCPP2_1Error>>

Source

pub async fn on_clear_cache<F, FF>(&self, callback: F)
where F: FnMut(ClearCacheRequest<CustomData>, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<ClearCacheResponse<CustomData>, OCPP2_1Error>> + Send,

Source

pub async fn wait_for_clear_cache<F, FF>( &self, callback: F, ) -> Result<ClearCacheRequest<CustomData>, ClientError<OCPP2_1Error>>
where F: FnMut(ClearCacheRequest<CustomData>, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<ClearCacheResponse<CustomData>, OCPP2_1Error>> + Send,

Source§

impl Client<OCPP2_1Error>

Source§

impl Client<OCPP2_1Error>

Source§

impl Client<OCPP2_1Error>

Source§

impl Client<OCPP2_1Error>

Source§

impl Client<OCPP2_1Error>

Source§

impl Client<OCPP2_1Error>

Source§

impl Client<OCPP2_1Error>

Source§

impl Client<OCPP2_1Error>

Source

pub async fn send_cost_updated( &self, request: CostUpdatedRequest<CustomData>, ) -> Result<CostUpdatedResponse<CustomData>, ClientError<OCPP2_1Error>>

Source

pub async fn on_cost_updated<F, FF>(&self, callback: F)
where F: FnMut(CostUpdatedRequest<CustomData>, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<CostUpdatedResponse<CustomData>, OCPP2_1Error>> + Send,

Source

pub async fn wait_for_cost_updated<F, FF>( &self, callback: F, ) -> Result<CostUpdatedRequest<CustomData>, ClientError<OCPP2_1Error>>
where F: FnMut(CostUpdatedRequest<CustomData>, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<CostUpdatedResponse<CustomData>, OCPP2_1Error>> + Send,

Source§

impl Client<OCPP2_1Error>

Source§

impl Client<OCPP2_1Error>

Source§

impl Client<OCPP2_1Error>

Source§

impl Client<OCPP2_1Error>

Source§

impl Client<OCPP2_1Error>

Source§

impl Client<OCPP2_1Error>

Source§

impl Client<OCPP2_1Error>

Source§

impl Client<OCPP2_1Error>

Source§

impl Client<OCPP2_1Error>

Source§

impl Client<OCPP2_1Error>

Source§

impl Client<OCPP2_1Error>

Source§

impl Client<OCPP2_1Error>

Source§

impl Client<OCPP2_1Error>

Source§

impl Client<OCPP2_1Error>

Source§

impl Client<OCPP2_1Error>

Source

pub async fn send_get_log( &self, request: GetLogRequest<CustomData>, ) -> Result<GetLogResponse<CustomData>, ClientError<OCPP2_1Error>>

Source

pub async fn on_get_log<F, FF>(&self, callback: F)
where F: FnMut(GetLogRequest<CustomData>, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<GetLogResponse<CustomData>, OCPP2_1Error>> + Send,

Source

pub async fn wait_for_get_log<F, FF>( &self, callback: F, ) -> Result<GetLogRequest<CustomData>, ClientError<OCPP2_1Error>>
where F: FnMut(GetLogRequest<CustomData>, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<GetLogResponse<CustomData>, OCPP2_1Error>> + Send,

Source§

impl Client<OCPP2_1Error>

Source§

impl Client<OCPP2_1Error>

Source§

impl Client<OCPP2_1Error>

Source

pub async fn send_get_report( &self, request: GetReportRequest<CustomData>, ) -> Result<GetReportResponse<CustomData>, ClientError<OCPP2_1Error>>

Source

pub async fn on_get_report<F, FF>(&self, callback: F)
where F: FnMut(GetReportRequest<CustomData>, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<GetReportResponse<CustomData>, OCPP2_1Error>> + Send,

Source

pub async fn wait_for_get_report<F, FF>( &self, callback: F, ) -> Result<GetReportRequest<CustomData>, ClientError<OCPP2_1Error>>
where F: FnMut(GetReportRequest<CustomData>, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<GetReportResponse<CustomData>, OCPP2_1Error>> + Send,

Source§

impl Client<OCPP2_1Error>

Source

pub async fn send_get_tariffs( &self, request: GetTariffsRequest<CustomData>, ) -> Result<GetTariffsResponse<CustomData>, ClientError<OCPP2_1Error>>

Source

pub async fn on_get_tariffs<F, FF>(&self, callback: F)
where F: FnMut(GetTariffsRequest<CustomData>, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<GetTariffsResponse<CustomData>, OCPP2_1Error>> + Send,

Source

pub async fn wait_for_get_tariffs<F, FF>( &self, callback: F, ) -> Result<GetTariffsRequest<CustomData>, ClientError<OCPP2_1Error>>
where F: FnMut(GetTariffsRequest<CustomData>, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<GetTariffsResponse<CustomData>, OCPP2_1Error>> + Send,

Source§

impl Client<OCPP2_1Error>

Source§

impl Client<OCPP2_1Error>

Source§

impl Client<OCPP2_1Error>

Source

pub async fn send_heartbeat( &self, request: HeartbeatRequest<CustomData>, ) -> Result<HeartbeatResponse<CustomData>, ClientError<OCPP2_1Error>>

Source

pub async fn on_heartbeat<F, FF>(&self, callback: F)
where F: FnMut(HeartbeatRequest<CustomData>, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<HeartbeatResponse<CustomData>, OCPP2_1Error>> + Send,

Source

pub async fn wait_for_heartbeat<F, FF>( &self, callback: F, ) -> Result<HeartbeatRequest<CustomData>, ClientError<OCPP2_1Error>>
where F: FnMut(HeartbeatRequest<CustomData>, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<HeartbeatResponse<CustomData>, OCPP2_1Error>> + Send,

Source§

impl Client<OCPP2_1Error>

Source§

impl Client<OCPP2_1Error>

Source§

impl Client<OCPP2_1Error>

Source

pub async fn send_meter_values( &self, request: MeterValuesRequest<CustomData>, ) -> Result<MeterValuesResponse<CustomData>, ClientError<OCPP2_1Error>>

Source

pub async fn on_meter_values<F, FF>(&self, callback: F)
where F: FnMut(MeterValuesRequest<CustomData>, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<MeterValuesResponse<CustomData>, OCPP2_1Error>> + Send,

Source

pub async fn wait_for_meter_values<F, FF>( &self, callback: F, ) -> Result<MeterValuesRequest<CustomData>, ClientError<OCPP2_1Error>>
where F: FnMut(MeterValuesRequest<CustomData>, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<MeterValuesResponse<CustomData>, OCPP2_1Error>> + Send,

Source§

impl Client<OCPP2_1Error>

Source§

impl Client<OCPP2_1Error>

Source§

impl Client<OCPP2_1Error>

Source§

impl Client<OCPP2_1Error>

Source§

impl Client<OCPP2_1Error>

Source§

impl Client<OCPP2_1Error>

Source§

impl Client<OCPP2_1Error>

Source§

impl Client<OCPP2_1Error>

Source§

impl Client<OCPP2_1Error>

Source

pub async fn send_notify_event( &self, request: NotifyEventRequest<CustomData>, ) -> Result<NotifyEventResponse<CustomData>, ClientError<OCPP2_1Error>>

Source

pub async fn on_notify_event<F, FF>(&self, callback: F)
where F: FnMut(NotifyEventRequest<CustomData>, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<NotifyEventResponse<CustomData>, OCPP2_1Error>> + Send,

Source

pub async fn wait_for_notify_event<F, FF>( &self, callback: F, ) -> Result<NotifyEventRequest<CustomData>, ClientError<OCPP2_1Error>>
where F: FnMut(NotifyEventRequest<CustomData>, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<NotifyEventResponse<CustomData>, OCPP2_1Error>> + Send,

Source§

impl Client<OCPP2_1Error>

Source§

impl Client<OCPP2_1Error>

Source§

impl Client<OCPP2_1Error>

Source

pub async fn send_notify_periodic_event_stream( &self, payload: NotifyPeriodicEventStream<CustomData>, ) -> Result<(), ClientError<OCPP2_1Error>>

Source

pub async fn on_notify_periodic_event_stream<F, FF>(&self, callback: F)
where F: FnMut(NotifyPeriodicEventStream<CustomData>, Self) -> FF + Send + Sync + 'static, FF: Future<Output = ()> + Send,

Source§

impl Client<OCPP2_1Error>

Source§

impl Client<OCPP2_1Error>

Source§

impl Client<OCPP2_1Error>

Source§

impl Client<OCPP2_1Error>

Source§

impl Client<OCPP2_1Error>

Source§

impl Client<OCPP2_1Error>

Source§

impl Client<OCPP2_1Error>

Source§

impl Client<OCPP2_1Error>

Source§

impl Client<OCPP2_1Error>

Source§

impl Client<OCPP2_1Error>

Source§

impl Client<OCPP2_1Error>

Source§

impl Client<OCPP2_1Error>

Source§

impl Client<OCPP2_1Error>

Source§

impl Client<OCPP2_1Error>

Source

pub async fn send_reserve_now( &self, request: ReserveNowRequest<CustomData>, ) -> Result<ReserveNowResponse<CustomData>, ClientError<OCPP2_1Error>>

Source

pub async fn on_reserve_now<F, FF>(&self, callback: F)
where F: FnMut(ReserveNowRequest<CustomData>, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<ReserveNowResponse<CustomData>, OCPP2_1Error>> + Send,

Source

pub async fn wait_for_reserve_now<F, FF>( &self, callback: F, ) -> Result<ReserveNowRequest<CustomData>, ClientError<OCPP2_1Error>>
where F: FnMut(ReserveNowRequest<CustomData>, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<ReserveNowResponse<CustomData>, OCPP2_1Error>> + Send,

Source§

impl Client<OCPP2_1Error>

Source

pub async fn send_reset( &self, request: ResetRequest<CustomData>, ) -> Result<ResetResponse<CustomData>, ClientError<OCPP2_1Error>>

Source

pub async fn on_reset<F, FF>(&self, callback: F)
where F: FnMut(ResetRequest<CustomData>, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<ResetResponse<CustomData>, OCPP2_1Error>> + Send,

Source

pub async fn wait_for_reset<F, FF>( &self, callback: F, ) -> Result<ResetRequest<CustomData>, ClientError<OCPP2_1Error>>
where F: FnMut(ResetRequest<CustomData>, Self) -> FF + Send + Sync + 'static, FF: Future<Output = Result<ResetResponse<CustomData>, OCPP2_1Error>> + Send,

Source§

impl Client<OCPP2_1Error>

Source§

impl Client<OCPP2_1Error>

Source§

impl Client<OCPP2_1Error>

Source§

impl Client<OCPP2_1Error>

Source§

impl Client<OCPP2_1Error>

Source§

impl Client<OCPP2_1Error>

Source§

impl Client<OCPP2_1Error>

Source§

impl Client<OCPP2_1Error>

Source§

impl Client<OCPP2_1Error>

Source§

impl Client<OCPP2_1Error>

Source§

impl Client<OCPP2_1Error>

Source§

impl Client<OCPP2_1Error>

Source§

impl Client<OCPP2_1Error>

Source§

impl Client<OCPP2_1Error>

Source§

impl Client<OCPP2_1Error>

Source§

impl Client<OCPP2_1Error>

Source§

impl Client<OCPP2_1Error>

Source§

impl Client<OCPP2_1Error>

Source§

impl Client<OCPP2_1Error>

Source§

impl Client<OCPP2_1Error>

Source§

impl Client<OCPP2_1Error>

Trait Implementations§

Source§

impl<E: ProtocolError> Clone for Client<E>

Source§

fn clone(&self) -> Self

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

Auto Trait Implementations§

§

impl<E> !RefUnwindSafe for Client<E>

§

impl<E> !UnwindSafe for Client<E>

§

impl<E> Freeze for Client<E>

§

impl<E> Send for Client<E>

§

impl<E> Sync for Client<E>

§

impl<E> Unpin for Client<E>

§

impl<E> UnsafeUnpin for Client<E>

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