Files
mxaccess/design/public-api/mxaccess.txt
T
Joseph Doherty c73a33edd8
rust / build / test / clippy / fmt (push) Has been cancelled
rust / cargo public-api drift check (F41) (push) Has been cancelled
[R3/R4 Path A] mxaccess: port Lmx.dll FUN_10100ce0 synthesizer kernel
Path A landed for R3/R4. The byte->MxStatus synthesizer in Lmx.dll is
FUN_10100ce0 (`analysis/ghidra/exports/Lmx.dll.synthesizer-helpers2-decompile.md`),
a 4-byte u32 LE -> 4-tuple MxStatus decoder used by every NMX-frame
parser in Lmx.dll. The kernel is byte-deterministic and context-free,
so it ports as a pure function -- the operation-tracking state
machine the original verdict deferred is NOT required for synthesis.

Bit layout (per FUN_10100ce0 lines 21-24):
  bit 31:        success    (-1 if set, 0 if clear)
  bits 27..24:   category   (4 bits)
  bits 23..20:   detected_by (4 bits)
  bits 15..0:    detail     (i16 -- low 16 bits, signed)
  bits 30..28, 19..16: reserved/padding

Codec changes:
- MxStatus::from_packed_u32() / ::to_packed_u32() -- the kernel +
  inverse for round-trip parity.
- MxStatus::from_nmx_response_code() -- the constructed-from-response-
  code switch in FUN_1010bd10:741-770 (six proven mappings: 0x01, 0x02
  -> CommunicationError + RequestingNmx; 0x03 -> ConfigurationError +
  RequestingNmx; 0x04 -> ConfigurationError + RespondingNmx; 0x05 ->
  CommunicationError + RespondingNmx; 0x1A -> CommunicationError +
  RequestingNmx).
- MxStatusCategory / MxStatusSource: from_i16/to_i16 promoted to const
  fn so MxStatus::from_packed_u32 can be const.
- NmxOperationStatusMessage::try_parse_process_data_received_body() --
  thin wrapper that peels the outer NmxObservedEnvelope before
  delegating to try_parse_inner. Mirrors
  NmxOperationStatusMessage.TryParseProcessDataReceivedBody (.NET cs:20-32).
- NmxOperationStatusMessage::promote_to_typed() -- entry point that
  returns the existing Status field. Documented as a no-op pass-through
  for now (the 5-byte inner-body wire shape is NOT the same field as
  the 4-byte packed-u32 the kernel decodes); kept for API symmetry.
- 22 new round-trip tests covering the kernel, the response-code
  switch, the proven 0x00/0x41/0xEF completion bytes, and round-trip
  for every canonical sentinel.

mxaccess (Session) changes:
- New OperationKind enum (Write/WriteSecured/Read/Subscribe/
  Unsubscribe/Activate/Suspend/Other).
- New OperationContext struct (correlation_id, op_kind, reference,
  retry_count) -- ground for the F54 follow-on per-operation
  correlation work.
- New OperationStatus event type {raw, status, context,
  is_during_recovery}, mirroring MxNativeOperationStatusEvent (cs:73-78)
  with the typed-MxStatus addition.
- Session::operation_status_events() -> broadcast::Receiver<Arc<
  OperationStatus>> + operation_status_stream() Stream variant.
- callback_router() now tries operation-status parsing first, falling
  through to subscription messages -- matches MxNativeSession
  .OnCallbackReceived dispatch order (cs:574,582,590).
- recover_connection() flips a recovery_active counter (Arc<AtomicU32>
  shared with the router) so OperationStatus.is_during_recovery is
  populated correctly. Mirrors MxNativeSession._recoveryActive
  Volatile.Read at cs:573.
- 3 new router tests covering: status-word frame dispatch + typed
  promotion to WriteCompleteOk; completion-only frames stay verbatim;
  is_during_recovery is stamped from the live counter.

Per-operation context tracking (correlating completion frames back to
outstanding writes/subscribes via the correlation_id) is filed as F54
in design/followups.md. The synthesizer kernel itself is byte-
deterministic, so the kernel and the correlation work are decoupled.

Ghidra evidence (the next-ring xref walk beyond FUN_10114a90):
- analysis/ghidra/exports/Lmx.dll.set-attribute-result-xrefs.md --
  xrefs to OnSetAttributeResult / CancelWithStatus / OperationComplete.
- analysis/ghidra/exports/Lmx.dll.vtable-data-xrefs.md -- vtable-slot
  data xrefs for the virtual-dispatch path.
- analysis/ghidra/exports/Lmx.dll.synthesizer-decompile.md --
  ScanOnDemandCallback::OperationComplete/MultipleOperationComplete
  (FUN_1010b990), RemotePlatformResolver::OperationComplete
  (FUN_1010dc80), and the constructed-from-responseCode synthesizer
  in FUN_1010bd10 (lines 698-770). FUN_1010bd10 is the wire-frame
  receiver that drives the synthesis.
- analysis/ghidra/exports/Lmx.dll.synthesizer-helpers-decompile.md --
  FUN_10003fc0 (the <success %d category %d ...> formatter; confirms
  the 4-tuple layout), FUN_1008f150 (dispatch helper).
- analysis/ghidra/exports/Lmx.dll.synthesizer-helpers2-decompile.md --
  FUN_10100ce0 (the kernel itself), FUN_10100bc0 (3xu16 reader),
  FUN_1005e580 (4-byte stream reader), FUN_1010ee00 (sister NMX-frame
  parser using the same kernel).
- analysis/ghidra/exports/Lmx.dll.synthesizer-callers-xrefs.md --
  caller graph; confirms the kernel is called from many wire-frame
  parsers but each parser shares the single 4-byte decoder.

R3/R4 verdict updated in design/70-risks-and-open-questions.md from
"settled at verbatim-preserve" to "settled per Path A". F54 filed in
design/followups.md for the per-operation correlation work.

cargo build / test / clippy -D warnings / RUSTDOCFLAGS=-D warnings doc
all clean. cargo public-api baselines regenerated for mxaccess and
mxaccess-codec.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-06 07:08:36 -04:00

663 lines
52 KiB
Plaintext

pub mod mxaccess
pub use mxaccess::GalaxyTagMetadata
pub use mxaccess::MxDataType
pub use mxaccess::MxReferenceHandle
pub use mxaccess::MxStatus
pub use mxaccess::MxStatusCategory
pub use mxaccess::MxStatusSource
pub use mxaccess::MxValue
pub use mxaccess::MxValueKind
pub use mxaccess::Resolver
pub use mxaccess::ResolverError
pub use mxaccess::WriteValue
pub mod mxaccess::asb_session
pub struct mxaccess::asb_session::AsbSession
impl mxaccess::asb_session::AsbSession
pub async fn mxaccess::asb_session::AsbSession::add_monitored_items(&self, subscription_id: i64, items: &[mxaccess_asb::operations::MinimalMonitoredItem], require_id: bool) -> core::result::Result<mxaccess_asb::operations::AddMonitoredItemsResponse, mxaccess::Error>
pub async fn mxaccess::asb_session::AsbSession::connect(endpoint: core::net::socket_addr::SocketAddr, passphrase: &str, crypto_parameters: &mxaccess_asb_nettcp::auth::CryptoParameters, via_uri: impl core::convert::Into<alloc::string::String>, connection_id: [u8; 16]) -> core::result::Result<Self, mxaccess::Error>
pub fn mxaccess::asb_session::AsbSession::connect_response(&self) -> &mxaccess_asb::operations::ConnectResponse
pub async fn mxaccess::asb_session::AsbSession::create_subscription(&self, max_queue_size: i64, sample_interval: u64) -> core::result::Result<mxaccess_asb::operations::CreateSubscriptionResponse, mxaccess::Error>
pub async fn mxaccess::asb_session::AsbSession::delete_monitored_items(&self, subscription_id: i64, items: &[mxaccess_asb::operations::MinimalMonitoredItem]) -> core::result::Result<mxaccess_asb::operations::DeleteMonitoredItemsResponse, mxaccess::Error>
pub async fn mxaccess::asb_session::AsbSession::delete_subscription(&self, subscription_id: i64) -> core::result::Result<mxaccess_asb::operations::DeleteSubscriptionResponse, mxaccess::Error>
pub async fn mxaccess::asb_session::AsbSession::disconnect(&self) -> core::result::Result<(), mxaccess::Error>
pub fn mxaccess::asb_session::AsbSession::from_transport(transport: mxaccess::transport_asb::AsbTransport<tokio::net::tcp::stream::TcpStream>, connect_response: mxaccess_asb::operations::ConnectResponse) -> Self
pub async fn mxaccess::asb_session::AsbSession::keep_alive(&self) -> core::result::Result<(), mxaccess::Error>
pub async fn mxaccess::asb_session::AsbSession::publish(&self, subscription_id: i64) -> core::result::Result<mxaccess_asb::operations::PublishResponse, mxaccess::Error>
pub async fn mxaccess::asb_session::AsbSession::publish_write_complete(&self) -> core::result::Result<mxaccess_asb::operations::PublishWriteCompleteResponse, mxaccess::Error>
pub async fn mxaccess::asb_session::AsbSession::read(&self, items: &[mxaccess_asb::contracts::ItemIdentity]) -> core::result::Result<mxaccess_asb::operations::ReadResponse, mxaccess::Error>
pub async fn mxaccess::asb_session::AsbSession::register_items(&self, items: &[mxaccess_asb::contracts::ItemIdentity], require_id: bool, register_only: bool) -> core::result::Result<mxaccess_asb::operations::RegisterItemsResponse, mxaccess::Error>
pub fn mxaccess::asb_session::AsbSession::subscribe(&self, subscription_id: i64) -> mxaccess::asb_session::AsbSubscription
pub async fn mxaccess::asb_session::AsbSession::subscribe_buffered(&self, _reference: &str, _options: mxaccess::BufferedOptions) -> core::result::Result<mxaccess::asb_session::AsbSubscription, mxaccess::Error>
pub async fn mxaccess::asb_session::AsbSession::unregister_items(&self, items: &[mxaccess_asb::contracts::ItemIdentity]) -> core::result::Result<mxaccess_asb::operations::UnregisterItemsResponse, mxaccess::Error>
pub async fn mxaccess::asb_session::AsbSession::write(&self, items: &[mxaccess_asb::contracts::ItemIdentity], values: &[mxaccess_asb::operations::MinimalWriteValue], write_handle: u32) -> core::result::Result<mxaccess_asb::operations::WriteResponse, mxaccess::Error>
impl core::clone::Clone for mxaccess::asb_session::AsbSession
pub fn mxaccess::asb_session::AsbSession::clone(&self) -> mxaccess::asb_session::AsbSession
impl core::fmt::Debug for mxaccess::asb_session::AsbSession
pub fn mxaccess::asb_session::AsbSession::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
impl core::marker::Freeze for mxaccess::asb_session::AsbSession
impl core::marker::Send for mxaccess::asb_session::AsbSession
impl core::marker::Sync for mxaccess::asb_session::AsbSession
impl core::marker::Unpin for mxaccess::asb_session::AsbSession
impl core::marker::UnsafeUnpin for mxaccess::asb_session::AsbSession
impl !core::panic::unwind_safe::RefUnwindSafe for mxaccess::asb_session::AsbSession
impl !core::panic::unwind_safe::UnwindSafe for mxaccess::asb_session::AsbSession
pub struct mxaccess::asb_session::AsbSubscription
impl core::fmt::Debug for mxaccess::asb_session::AsbSubscription
pub fn mxaccess::asb_session::AsbSubscription::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
impl core::ops::drop::Drop for mxaccess::asb_session::AsbSubscription
pub fn mxaccess::asb_session::AsbSubscription::drop(&mut self)
impl futures_core::stream::Stream for mxaccess::asb_session::AsbSubscription
pub type mxaccess::asb_session::AsbSubscription::Item = core::result::Result<mxaccess_asb::contracts::MonitoredItemValue, mxaccess::Error>
pub fn mxaccess::asb_session::AsbSubscription::poll_next(self: core::pin::Pin<&mut Self>, cx: &mut core::task::wake::Context<'_>) -> core::task::poll::Poll<core::option::Option<Self::Item>>
impl core::marker::Freeze for mxaccess::asb_session::AsbSubscription
impl core::marker::Send for mxaccess::asb_session::AsbSubscription
impl core::marker::Sync for mxaccess::asb_session::AsbSubscription
impl core::marker::Unpin for mxaccess::asb_session::AsbSubscription
impl core::marker::UnsafeUnpin for mxaccess::asb_session::AsbSubscription
impl core::panic::unwind_safe::RefUnwindSafe for mxaccess::asb_session::AsbSubscription
impl core::panic::unwind_safe::UnwindSafe for mxaccess::asb_session::AsbSubscription
pub mod mxaccess::session
#[non_exhaustive] pub enum mxaccess::session::OperationKind
pub mxaccess::session::OperationKind::Activate
pub mxaccess::session::OperationKind::Other
pub mxaccess::session::OperationKind::Read
pub mxaccess::session::OperationKind::Subscribe
pub mxaccess::session::OperationKind::Suspend
pub mxaccess::session::OperationKind::Unsubscribe
pub mxaccess::session::OperationKind::Write
pub mxaccess::session::OperationKind::WriteSecured
impl core::clone::Clone for mxaccess::session::OperationKind
pub fn mxaccess::session::OperationKind::clone(&self) -> mxaccess::session::OperationKind
impl core::cmp::Eq for mxaccess::session::OperationKind
impl core::cmp::PartialEq for mxaccess::session::OperationKind
pub fn mxaccess::session::OperationKind::eq(&self, other: &mxaccess::session::OperationKind) -> bool
impl core::fmt::Debug for mxaccess::session::OperationKind
pub fn mxaccess::session::OperationKind::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
impl core::hash::Hash for mxaccess::session::OperationKind
pub fn mxaccess::session::OperationKind::hash<__H: core::hash::Hasher>(&self, state: &mut __H)
impl core::marker::Copy for mxaccess::session::OperationKind
impl core::marker::StructuralPartialEq for mxaccess::session::OperationKind
impl core::marker::Freeze for mxaccess::session::OperationKind
impl core::marker::Send for mxaccess::session::OperationKind
impl core::marker::Sync for mxaccess::session::OperationKind
impl core::marker::Unpin for mxaccess::session::OperationKind
impl core::marker::UnsafeUnpin for mxaccess::session::OperationKind
impl core::panic::unwind_safe::RefUnwindSafe for mxaccess::session::OperationKind
impl core::panic::unwind_safe::UnwindSafe for mxaccess::session::OperationKind
#[non_exhaustive] pub struct mxaccess::session::OperationContext
pub mxaccess::session::OperationContext::correlation_id: [u8; 16]
pub mxaccess::session::OperationContext::op_kind: mxaccess::session::OperationKind
pub mxaccess::session::OperationContext::reference: core::option::Option<alloc::sync::Arc<str>>
pub mxaccess::session::OperationContext::retry_count: u32
impl core::clone::Clone for mxaccess::session::OperationContext
pub fn mxaccess::session::OperationContext::clone(&self) -> mxaccess::session::OperationContext
impl core::fmt::Debug for mxaccess::session::OperationContext
pub fn mxaccess::session::OperationContext::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
impl core::marker::Freeze for mxaccess::session::OperationContext
impl core::marker::Send for mxaccess::session::OperationContext
impl core::marker::Sync for mxaccess::session::OperationContext
impl core::marker::Unpin for mxaccess::session::OperationContext
impl core::marker::UnsafeUnpin for mxaccess::session::OperationContext
impl core::panic::unwind_safe::RefUnwindSafe for mxaccess::session::OperationContext
impl core::panic::unwind_safe::UnwindSafe for mxaccess::session::OperationContext
#[non_exhaustive] pub struct mxaccess::session::OperationStatus
pub mxaccess::session::OperationStatus::context: core::option::Option<mxaccess::session::OperationContext>
pub mxaccess::session::OperationStatus::is_during_recovery: bool
pub mxaccess::session::OperationStatus::raw: mxaccess_codec::operation_status::NmxOperationStatusMessage
pub mxaccess::session::OperationStatus::status: mxaccess_codec::status::MxStatus
impl core::clone::Clone for mxaccess::session::OperationStatus
pub fn mxaccess::session::OperationStatus::clone(&self) -> mxaccess::session::OperationStatus
impl core::fmt::Debug for mxaccess::session::OperationStatus
pub fn mxaccess::session::OperationStatus::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
impl core::marker::Freeze for mxaccess::session::OperationStatus
impl core::marker::Send for mxaccess::session::OperationStatus
impl core::marker::Sync for mxaccess::session::OperationStatus
impl core::marker::Unpin for mxaccess::session::OperationStatus
impl core::marker::UnsafeUnpin for mxaccess::session::OperationStatus
impl core::panic::unwind_safe::RefUnwindSafe for mxaccess::session::OperationStatus
impl core::panic::unwind_safe::UnwindSafe for mxaccess::session::OperationStatus
pub struct mxaccess::session::SessionInner
impl core::fmt::Debug for mxaccess::session::SessionInner
pub fn mxaccess::session::SessionInner::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
impl !core::marker::Freeze for mxaccess::session::SessionInner
impl core::marker::Send for mxaccess::session::SessionInner
impl core::marker::Sync for mxaccess::session::SessionInner
impl core::marker::Unpin for mxaccess::session::SessionInner
impl core::marker::UnsafeUnpin for mxaccess::session::SessionInner
impl !core::panic::unwind_safe::RefUnwindSafe for mxaccess::session::SessionInner
impl !core::panic::unwind_safe::UnwindSafe for mxaccess::session::SessionInner
pub struct mxaccess::session::Subscription
impl mxaccess::session::Subscription
pub fn mxaccess::session::Subscription::correlation_id(&self) -> [u8; 16]
pub fn mxaccess::session::Subscription::metadata(&self) -> &mxaccess_galaxy::metadata::GalaxyTagMetadata
pub fn mxaccess::session::Subscription::reference(&self) -> &str
impl core::fmt::Debug for mxaccess::session::Subscription
pub fn mxaccess::session::Subscription::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
impl futures_core::stream::Stream for mxaccess::session::Subscription
pub type mxaccess::session::Subscription::Item = core::result::Result<mxaccess::DataChange, mxaccess::Error>
pub fn mxaccess::session::Subscription::poll_next(self: core::pin::Pin<&mut Self>, cx: &mut core::task::wake::Context<'_>) -> core::task::poll::Poll<core::option::Option<Self::Item>>
impl core::marker::Freeze for mxaccess::session::Subscription
impl core::marker::Send for mxaccess::session::Subscription
impl core::marker::Sync for mxaccess::session::Subscription
impl core::marker::Unpin for mxaccess::session::Subscription
impl core::marker::UnsafeUnpin for mxaccess::session::Subscription
impl !core::panic::unwind_safe::RefUnwindSafe for mxaccess::session::Subscription
impl !core::panic::unwind_safe::UnwindSafe for mxaccess::session::Subscription
pub fn mxaccess::session::filetime_to_system_time(filetime_ticks: i64) -> std::time::SystemTime
pub fn mxaccess::session::system_time_to_filetime(time: std::time::SystemTime) -> core::result::Result<i64, mxaccess::Error>
pub type mxaccess::session::RebuildFactory = alloc::sync::Arc<(dyn core::ops::function::Fn() -> core::pin::Pin<alloc::boxed::Box<(dyn core::future::future::Future<Output = core::result::Result<mxaccess_nmx::client::NmxClient, mxaccess_nmx::client::NmxClientError>> + core::marker::Send)>> + core::marker::Send + core::marker::Sync)>
pub mod mxaccess::transport_asb
pub struct mxaccess::transport_asb::AsbTransport<T: tokio::io::async_read::AsyncRead + tokio::io::async_write::AsyncWrite + core::marker::Unpin + core::marker::Send + 'static>
impl mxaccess::transport_asb::AsbTransport<tokio::net::tcp::stream::TcpStream>
pub async fn mxaccess::transport_asb::AsbTransport<tokio::net::tcp::stream::TcpStream>::connect(endpoint: core::net::socket_addr::SocketAddr, passphrase: &str, crypto_parameters: &mxaccess_asb_nettcp::auth::CryptoParameters, via_uri: impl core::convert::Into<alloc::string::String>, connection_id: [u8; 16]) -> core::result::Result<(Self, mxaccess_asb::operations::ConnectResponse), mxaccess::Error>
impl<T: tokio::io::async_read::AsyncRead + tokio::io::async_write::AsyncWrite + core::marker::Unpin + core::marker::Send + 'static> mxaccess::transport_asb::AsbTransport<T>
pub fn mxaccess::transport_asb::AsbTransport<T>::client_mut(&mut self) -> &mut mxaccess_asb::client::AsbClient<T>
pub fn mxaccess::transport_asb::AsbTransport<T>::into_client(self) -> mxaccess_asb::client::AsbClient<T>
pub fn mxaccess::transport_asb::AsbTransport<T>::new(client: mxaccess_asb::client::AsbClient<T>) -> Self
impl<T: tokio::io::async_read::AsyncRead + tokio::io::async_write::AsyncWrite + core::marker::Unpin + core::marker::Send + core::marker::Sync + 'static> mxaccess::Transport for mxaccess::transport_asb::AsbTransport<T>
pub fn mxaccess::transport_asb::AsbTransport<T>::capabilities(&self) -> mxaccess::TransportCapabilities
pub fn mxaccess::transport_asb::AsbTransport<T>::kind(&self) -> mxaccess::TransportKind
impl<T> core::marker::Freeze for mxaccess::transport_asb::AsbTransport<T> where T: core::marker::Freeze
impl<T> core::marker::Send for mxaccess::transport_asb::AsbTransport<T>
impl<T> core::marker::Sync for mxaccess::transport_asb::AsbTransport<T> where T: core::marker::Sync
impl<T> core::marker::Unpin for mxaccess::transport_asb::AsbTransport<T>
impl<T> core::marker::UnsafeUnpin for mxaccess::transport_asb::AsbTransport<T> where T: core::marker::UnsafeUnpin
impl<T> core::panic::unwind_safe::RefUnwindSafe for mxaccess::transport_asb::AsbTransport<T> where T: core::panic::unwind_safe::RefUnwindSafe
impl<T> core::panic::unwind_safe::UnwindSafe for mxaccess::transport_asb::AsbTransport<T> where T: core::panic::unwind_safe::UnwindSafe
#[non_exhaustive] pub enum mxaccess::AuthError
pub mxaccess::AuthError::Ntlm
pub mxaccess::AuthError::Ntlm::reason: alloc::string::String
impl core::convert::From<mxaccess::AuthError> for mxaccess::Error
pub fn mxaccess::Error::from(source: mxaccess::AuthError) -> Self
impl core::error::Error for mxaccess::AuthError
impl core::fmt::Debug for mxaccess::AuthError
pub fn mxaccess::AuthError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
impl core::fmt::Display for mxaccess::AuthError
pub fn mxaccess::AuthError::fmt(&self, __formatter: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
impl core::marker::Freeze for mxaccess::AuthError
impl core::marker::Send for mxaccess::AuthError
impl core::marker::Sync for mxaccess::AuthError
impl core::marker::Unpin for mxaccess::AuthError
impl core::marker::UnsafeUnpin for mxaccess::AuthError
impl core::panic::unwind_safe::RefUnwindSafe for mxaccess::AuthError
impl core::panic::unwind_safe::UnwindSafe for mxaccess::AuthError
#[non_exhaustive] pub enum mxaccess::ConfigError
pub mxaccess::ConfigError::Galaxy
pub mxaccess::ConfigError::Galaxy::reason: alloc::string::String
pub mxaccess::ConfigError::InvalidArgument
pub mxaccess::ConfigError::InvalidArgument::detail: alloc::string::String
pub mxaccess::ConfigError::RecoveryNotConfigured
impl core::convert::From<mxaccess::ConfigError> for mxaccess::Error
pub fn mxaccess::Error::from(source: mxaccess::ConfigError) -> Self
impl core::error::Error for mxaccess::ConfigError
impl core::fmt::Debug for mxaccess::ConfigError
pub fn mxaccess::ConfigError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
impl core::fmt::Display for mxaccess::ConfigError
pub fn mxaccess::ConfigError::fmt(&self, __formatter: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
impl core::marker::Freeze for mxaccess::ConfigError
impl core::marker::Send for mxaccess::ConfigError
impl core::marker::Sync for mxaccess::ConfigError
impl core::marker::Unpin for mxaccess::ConfigError
impl core::marker::UnsafeUnpin for mxaccess::ConfigError
impl core::panic::unwind_safe::RefUnwindSafe for mxaccess::ConfigError
impl core::panic::unwind_safe::UnwindSafe for mxaccess::ConfigError
#[non_exhaustive] pub enum mxaccess::ConnectionError
pub mxaccess::ConnectionError::CallbackProxyMissing
pub mxaccess::ConnectionError::EngineNotRegistered
pub mxaccess::ConnectionError::ServerUnavailable
pub mxaccess::ConnectionError::TransportFailure
pub mxaccess::ConnectionError::TransportFailure::detail: alloc::string::String
impl core::convert::From<mxaccess::ConnectionError> for mxaccess::Error
pub fn mxaccess::Error::from(source: mxaccess::ConnectionError) -> Self
impl core::error::Error for mxaccess::ConnectionError
impl core::fmt::Debug for mxaccess::ConnectionError
pub fn mxaccess::ConnectionError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
impl core::fmt::Display for mxaccess::ConnectionError
pub fn mxaccess::ConnectionError::fmt(&self, __formatter: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
impl core::marker::Freeze for mxaccess::ConnectionError
impl core::marker::Send for mxaccess::ConnectionError
impl core::marker::Sync for mxaccess::ConnectionError
impl core::marker::Unpin for mxaccess::ConnectionError
impl core::marker::UnsafeUnpin for mxaccess::ConnectionError
impl core::panic::unwind_safe::RefUnwindSafe for mxaccess::ConnectionError
impl core::panic::unwind_safe::UnwindSafe for mxaccess::ConnectionError
#[non_exhaustive] pub enum mxaccess::Error
pub mxaccess::Error::Auth(mxaccess::AuthError)
pub mxaccess::Error::Cancelled
pub mxaccess::Error::Configuration(mxaccess::ConfigError)
pub mxaccess::Error::Connection(mxaccess::ConnectionError)
pub mxaccess::Error::Io(std::io::error::Error)
pub mxaccess::Error::Protocol(mxaccess::ProtocolError)
pub mxaccess::Error::Security(mxaccess::SecurityError)
pub mxaccess::Error::Status
pub mxaccess::Error::Status::category: mxaccess_codec::status::MxStatusCategory
pub mxaccess::Error::Status::detail: i16
pub mxaccess::Error::Status::detected_by: mxaccess_codec::status::MxStatusSource
pub mxaccess::Error::Status::success: i16
pub mxaccess::Error::Timeout(core::time::Duration)
pub mxaccess::Error::TypeMismatch
pub mxaccess::Error::TypeMismatch::actual: mxaccess_codec::value::MxValueKind
pub mxaccess::Error::TypeMismatch::expected: mxaccess_codec::value::MxValueKind
pub mxaccess::Error::TypeMismatch::reference: alloc::sync::Arc<str>
pub mxaccess::Error::Unsupported
pub mxaccess::Error::Unsupported::operation: alloc::borrow::Cow<'static, str>
pub mxaccess::Error::Unsupported::transport: mxaccess::TransportKind
impl core::convert::From<mxaccess::AuthError> for mxaccess::Error
pub fn mxaccess::Error::from(source: mxaccess::AuthError) -> Self
impl core::convert::From<mxaccess::ConfigError> for mxaccess::Error
pub fn mxaccess::Error::from(source: mxaccess::ConfigError) -> Self
impl core::convert::From<mxaccess::ConnectionError> for mxaccess::Error
pub fn mxaccess::Error::from(source: mxaccess::ConnectionError) -> Self
impl core::convert::From<mxaccess::ProtocolError> for mxaccess::Error
pub fn mxaccess::Error::from(source: mxaccess::ProtocolError) -> Self
impl core::convert::From<mxaccess::SecurityError> for mxaccess::Error
pub fn mxaccess::Error::from(source: mxaccess::SecurityError) -> Self
impl core::convert::From<std::io::error::Error> for mxaccess::Error
pub fn mxaccess::Error::from(source: std::io::error::Error) -> Self
impl core::error::Error for mxaccess::Error
pub fn mxaccess::Error::source(&self) -> core::option::Option<&(dyn core::error::Error + 'static)>
impl core::fmt::Debug for mxaccess::Error
pub fn mxaccess::Error::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
impl core::fmt::Display for mxaccess::Error
pub fn mxaccess::Error::fmt(&self, __formatter: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
impl core::marker::Freeze for mxaccess::Error
impl core::marker::Send for mxaccess::Error
impl core::marker::Sync for mxaccess::Error
impl core::marker::Unpin for mxaccess::Error
impl core::marker::UnsafeUnpin for mxaccess::Error
impl !core::panic::unwind_safe::RefUnwindSafe for mxaccess::Error
impl !core::panic::unwind_safe::UnwindSafe for mxaccess::Error
#[non_exhaustive] pub enum mxaccess::OperationKind
pub mxaccess::OperationKind::Activate
pub mxaccess::OperationKind::Other
pub mxaccess::OperationKind::Read
pub mxaccess::OperationKind::Subscribe
pub mxaccess::OperationKind::Suspend
pub mxaccess::OperationKind::Unsubscribe
pub mxaccess::OperationKind::Write
pub mxaccess::OperationKind::WriteSecured
impl core::clone::Clone for mxaccess::session::OperationKind
pub fn mxaccess::session::OperationKind::clone(&self) -> mxaccess::session::OperationKind
impl core::cmp::Eq for mxaccess::session::OperationKind
impl core::cmp::PartialEq for mxaccess::session::OperationKind
pub fn mxaccess::session::OperationKind::eq(&self, other: &mxaccess::session::OperationKind) -> bool
impl core::fmt::Debug for mxaccess::session::OperationKind
pub fn mxaccess::session::OperationKind::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
impl core::hash::Hash for mxaccess::session::OperationKind
pub fn mxaccess::session::OperationKind::hash<__H: core::hash::Hasher>(&self, state: &mut __H)
impl core::marker::Copy for mxaccess::session::OperationKind
impl core::marker::StructuralPartialEq for mxaccess::session::OperationKind
impl core::marker::Freeze for mxaccess::session::OperationKind
impl core::marker::Send for mxaccess::session::OperationKind
impl core::marker::Sync for mxaccess::session::OperationKind
impl core::marker::Unpin for mxaccess::session::OperationKind
impl core::marker::UnsafeUnpin for mxaccess::session::OperationKind
impl core::panic::unwind_safe::RefUnwindSafe for mxaccess::session::OperationKind
impl core::panic::unwind_safe::UnwindSafe for mxaccess::session::OperationKind
#[non_exhaustive] pub enum mxaccess::ProtocolError
pub mxaccess::ProtocolError::Decode
pub mxaccess::ProtocolError::Decode::buffer_len: usize
pub mxaccess::ProtocolError::Decode::offset: usize
pub mxaccess::ProtocolError::Decode::reason: &'static str
pub mxaccess::ProtocolError::InnerLengthMismatch
pub mxaccess::ProtocolError::InnerLengthMismatch::actual: usize
pub mxaccess::ProtocolError::InnerLengthMismatch::declared: i32
pub mxaccess::ProtocolError::UnexpectedOpcode(u8)
impl core::convert::From<mxaccess::ProtocolError> for mxaccess::Error
pub fn mxaccess::Error::from(source: mxaccess::ProtocolError) -> Self
impl core::error::Error for mxaccess::ProtocolError
impl core::fmt::Debug for mxaccess::ProtocolError
pub fn mxaccess::ProtocolError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
impl core::fmt::Display for mxaccess::ProtocolError
pub fn mxaccess::ProtocolError::fmt(&self, __formatter: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
impl core::marker::Freeze for mxaccess::ProtocolError
impl core::marker::Send for mxaccess::ProtocolError
impl core::marker::Sync for mxaccess::ProtocolError
impl core::marker::Unpin for mxaccess::ProtocolError
impl core::marker::UnsafeUnpin for mxaccess::ProtocolError
impl core::panic::unwind_safe::RefUnwindSafe for mxaccess::ProtocolError
impl core::panic::unwind_safe::UnwindSafe for mxaccess::ProtocolError
#[non_exhaustive] pub enum mxaccess::RecoveryEvent
pub mxaccess::RecoveryEvent::Failed
pub mxaccess::RecoveryEvent::Failed::attempt: u32
pub mxaccess::RecoveryEvent::Failed::error: mxaccess::Error
pub mxaccess::RecoveryEvent::Failed::will_retry: bool
pub mxaccess::RecoveryEvent::Recovered
pub mxaccess::RecoveryEvent::Recovered::attempt: u32
pub mxaccess::RecoveryEvent::Started
pub mxaccess::RecoveryEvent::Started::attempt: u32
impl core::fmt::Debug for mxaccess::RecoveryEvent
pub fn mxaccess::RecoveryEvent::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
impl core::marker::Freeze for mxaccess::RecoveryEvent
impl core::marker::Send for mxaccess::RecoveryEvent
impl core::marker::Sync for mxaccess::RecoveryEvent
impl core::marker::Unpin for mxaccess::RecoveryEvent
impl core::marker::UnsafeUnpin for mxaccess::RecoveryEvent
impl !core::panic::unwind_safe::RefUnwindSafe for mxaccess::RecoveryEvent
impl !core::panic::unwind_safe::UnwindSafe for mxaccess::RecoveryEvent
#[non_exhaustive] pub enum mxaccess::SecurityError
pub mxaccess::SecurityError::CallbackObjRefRejected
pub mxaccess::SecurityError::VerifierRequired
impl core::convert::From<mxaccess::SecurityError> for mxaccess::Error
pub fn mxaccess::Error::from(source: mxaccess::SecurityError) -> Self
impl core::error::Error for mxaccess::SecurityError
impl core::fmt::Debug for mxaccess::SecurityError
pub fn mxaccess::SecurityError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
impl core::fmt::Display for mxaccess::SecurityError
pub fn mxaccess::SecurityError::fmt(&self, __formatter: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
impl core::marker::Freeze for mxaccess::SecurityError
impl core::marker::Send for mxaccess::SecurityError
impl core::marker::Sync for mxaccess::SecurityError
impl core::marker::Unpin for mxaccess::SecurityError
impl core::marker::UnsafeUnpin for mxaccess::SecurityError
impl core::panic::unwind_safe::RefUnwindSafe for mxaccess::SecurityError
impl core::panic::unwind_safe::UnwindSafe for mxaccess::SecurityError
#[non_exhaustive] pub enum mxaccess::TransportKind
pub mxaccess::TransportKind::Asb
pub mxaccess::TransportKind::Nmx
impl core::clone::Clone for mxaccess::TransportKind
pub fn mxaccess::TransportKind::clone(&self) -> mxaccess::TransportKind
impl core::cmp::Eq for mxaccess::TransportKind
impl core::cmp::PartialEq for mxaccess::TransportKind
pub fn mxaccess::TransportKind::eq(&self, other: &mxaccess::TransportKind) -> bool
impl core::fmt::Debug for mxaccess::TransportKind
pub fn mxaccess::TransportKind::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
impl core::hash::Hash for mxaccess::TransportKind
pub fn mxaccess::TransportKind::hash<__H: core::hash::Hasher>(&self, state: &mut __H)
impl core::marker::Copy for mxaccess::TransportKind
impl core::marker::StructuralPartialEq for mxaccess::TransportKind
impl core::marker::Freeze for mxaccess::TransportKind
impl core::marker::Send for mxaccess::TransportKind
impl core::marker::Sync for mxaccess::TransportKind
impl core::marker::Unpin for mxaccess::TransportKind
impl core::marker::UnsafeUnpin for mxaccess::TransportKind
impl core::panic::unwind_safe::RefUnwindSafe for mxaccess::TransportKind
impl core::panic::unwind_safe::UnwindSafe for mxaccess::TransportKind
pub struct mxaccess::AsbSession
impl mxaccess::asb_session::AsbSession
pub async fn mxaccess::asb_session::AsbSession::add_monitored_items(&self, subscription_id: i64, items: &[mxaccess_asb::operations::MinimalMonitoredItem], require_id: bool) -> core::result::Result<mxaccess_asb::operations::AddMonitoredItemsResponse, mxaccess::Error>
pub async fn mxaccess::asb_session::AsbSession::connect(endpoint: core::net::socket_addr::SocketAddr, passphrase: &str, crypto_parameters: &mxaccess_asb_nettcp::auth::CryptoParameters, via_uri: impl core::convert::Into<alloc::string::String>, connection_id: [u8; 16]) -> core::result::Result<Self, mxaccess::Error>
pub fn mxaccess::asb_session::AsbSession::connect_response(&self) -> &mxaccess_asb::operations::ConnectResponse
pub async fn mxaccess::asb_session::AsbSession::create_subscription(&self, max_queue_size: i64, sample_interval: u64) -> core::result::Result<mxaccess_asb::operations::CreateSubscriptionResponse, mxaccess::Error>
pub async fn mxaccess::asb_session::AsbSession::delete_monitored_items(&self, subscription_id: i64, items: &[mxaccess_asb::operations::MinimalMonitoredItem]) -> core::result::Result<mxaccess_asb::operations::DeleteMonitoredItemsResponse, mxaccess::Error>
pub async fn mxaccess::asb_session::AsbSession::delete_subscription(&self, subscription_id: i64) -> core::result::Result<mxaccess_asb::operations::DeleteSubscriptionResponse, mxaccess::Error>
pub async fn mxaccess::asb_session::AsbSession::disconnect(&self) -> core::result::Result<(), mxaccess::Error>
pub fn mxaccess::asb_session::AsbSession::from_transport(transport: mxaccess::transport_asb::AsbTransport<tokio::net::tcp::stream::TcpStream>, connect_response: mxaccess_asb::operations::ConnectResponse) -> Self
pub async fn mxaccess::asb_session::AsbSession::keep_alive(&self) -> core::result::Result<(), mxaccess::Error>
pub async fn mxaccess::asb_session::AsbSession::publish(&self, subscription_id: i64) -> core::result::Result<mxaccess_asb::operations::PublishResponse, mxaccess::Error>
pub async fn mxaccess::asb_session::AsbSession::publish_write_complete(&self) -> core::result::Result<mxaccess_asb::operations::PublishWriteCompleteResponse, mxaccess::Error>
pub async fn mxaccess::asb_session::AsbSession::read(&self, items: &[mxaccess_asb::contracts::ItemIdentity]) -> core::result::Result<mxaccess_asb::operations::ReadResponse, mxaccess::Error>
pub async fn mxaccess::asb_session::AsbSession::register_items(&self, items: &[mxaccess_asb::contracts::ItemIdentity], require_id: bool, register_only: bool) -> core::result::Result<mxaccess_asb::operations::RegisterItemsResponse, mxaccess::Error>
pub fn mxaccess::asb_session::AsbSession::subscribe(&self, subscription_id: i64) -> mxaccess::asb_session::AsbSubscription
pub async fn mxaccess::asb_session::AsbSession::subscribe_buffered(&self, _reference: &str, _options: mxaccess::BufferedOptions) -> core::result::Result<mxaccess::asb_session::AsbSubscription, mxaccess::Error>
pub async fn mxaccess::asb_session::AsbSession::unregister_items(&self, items: &[mxaccess_asb::contracts::ItemIdentity]) -> core::result::Result<mxaccess_asb::operations::UnregisterItemsResponse, mxaccess::Error>
pub async fn mxaccess::asb_session::AsbSession::write(&self, items: &[mxaccess_asb::contracts::ItemIdentity], values: &[mxaccess_asb::operations::MinimalWriteValue], write_handle: u32) -> core::result::Result<mxaccess_asb::operations::WriteResponse, mxaccess::Error>
impl core::clone::Clone for mxaccess::asb_session::AsbSession
pub fn mxaccess::asb_session::AsbSession::clone(&self) -> mxaccess::asb_session::AsbSession
impl core::fmt::Debug for mxaccess::asb_session::AsbSession
pub fn mxaccess::asb_session::AsbSession::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
impl core::marker::Freeze for mxaccess::asb_session::AsbSession
impl core::marker::Send for mxaccess::asb_session::AsbSession
impl core::marker::Sync for mxaccess::asb_session::AsbSession
impl core::marker::Unpin for mxaccess::asb_session::AsbSession
impl core::marker::UnsafeUnpin for mxaccess::asb_session::AsbSession
impl !core::panic::unwind_safe::RefUnwindSafe for mxaccess::asb_session::AsbSession
impl !core::panic::unwind_safe::UnwindSafe for mxaccess::asb_session::AsbSession
pub struct mxaccess::AsbTransport<T: tokio::io::async_read::AsyncRead + tokio::io::async_write::AsyncWrite + core::marker::Unpin + core::marker::Send + 'static>
impl mxaccess::transport_asb::AsbTransport<tokio::net::tcp::stream::TcpStream>
pub async fn mxaccess::transport_asb::AsbTransport<tokio::net::tcp::stream::TcpStream>::connect(endpoint: core::net::socket_addr::SocketAddr, passphrase: &str, crypto_parameters: &mxaccess_asb_nettcp::auth::CryptoParameters, via_uri: impl core::convert::Into<alloc::string::String>, connection_id: [u8; 16]) -> core::result::Result<(Self, mxaccess_asb::operations::ConnectResponse), mxaccess::Error>
impl<T: tokio::io::async_read::AsyncRead + tokio::io::async_write::AsyncWrite + core::marker::Unpin + core::marker::Send + 'static> mxaccess::transport_asb::AsbTransport<T>
pub fn mxaccess::transport_asb::AsbTransport<T>::client_mut(&mut self) -> &mut mxaccess_asb::client::AsbClient<T>
pub fn mxaccess::transport_asb::AsbTransport<T>::into_client(self) -> mxaccess_asb::client::AsbClient<T>
pub fn mxaccess::transport_asb::AsbTransport<T>::new(client: mxaccess_asb::client::AsbClient<T>) -> Self
impl<T: tokio::io::async_read::AsyncRead + tokio::io::async_write::AsyncWrite + core::marker::Unpin + core::marker::Send + core::marker::Sync + 'static> mxaccess::Transport for mxaccess::transport_asb::AsbTransport<T>
pub fn mxaccess::transport_asb::AsbTransport<T>::capabilities(&self) -> mxaccess::TransportCapabilities
pub fn mxaccess::transport_asb::AsbTransport<T>::kind(&self) -> mxaccess::TransportKind
impl<T> core::marker::Freeze for mxaccess::transport_asb::AsbTransport<T> where T: core::marker::Freeze
impl<T> core::marker::Send for mxaccess::transport_asb::AsbTransport<T>
impl<T> core::marker::Sync for mxaccess::transport_asb::AsbTransport<T> where T: core::marker::Sync
impl<T> core::marker::Unpin for mxaccess::transport_asb::AsbTransport<T>
impl<T> core::marker::UnsafeUnpin for mxaccess::transport_asb::AsbTransport<T> where T: core::marker::UnsafeUnpin
impl<T> core::panic::unwind_safe::RefUnwindSafe for mxaccess::transport_asb::AsbTransport<T> where T: core::panic::unwind_safe::RefUnwindSafe
impl<T> core::panic::unwind_safe::UnwindSafe for mxaccess::transport_asb::AsbTransport<T> where T: core::panic::unwind_safe::UnwindSafe
pub struct mxaccess::BufferedOptions
pub mxaccess::BufferedOptions::update_interval_ms: u32
impl mxaccess::BufferedOptions
pub const fn mxaccess::BufferedOptions::rounded_update_interval_ms(self) -> u32
impl core::clone::Clone for mxaccess::BufferedOptions
pub fn mxaccess::BufferedOptions::clone(&self) -> mxaccess::BufferedOptions
impl core::fmt::Debug for mxaccess::BufferedOptions
pub fn mxaccess::BufferedOptions::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
impl core::marker::Copy for mxaccess::BufferedOptions
impl core::marker::Freeze for mxaccess::BufferedOptions
impl core::marker::Send for mxaccess::BufferedOptions
impl core::marker::Sync for mxaccess::BufferedOptions
impl core::marker::Unpin for mxaccess::BufferedOptions
impl core::marker::UnsafeUnpin for mxaccess::BufferedOptions
impl core::panic::unwind_safe::RefUnwindSafe for mxaccess::BufferedOptions
impl core::panic::unwind_safe::UnwindSafe for mxaccess::BufferedOptions
pub struct mxaccess::BufferedSubscription
impl core::clone::Clone for mxaccess::BufferedSubscription
pub fn mxaccess::BufferedSubscription::clone(&self) -> mxaccess::BufferedSubscription
impl core::fmt::Debug for mxaccess::BufferedSubscription
pub fn mxaccess::BufferedSubscription::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
impl core::marker::Freeze for mxaccess::BufferedSubscription
impl core::marker::Send for mxaccess::BufferedSubscription
impl core::marker::Sync for mxaccess::BufferedSubscription
impl core::marker::Unpin for mxaccess::BufferedSubscription
impl core::marker::UnsafeUnpin for mxaccess::BufferedSubscription
impl core::panic::unwind_safe::RefUnwindSafe for mxaccess::BufferedSubscription
impl core::panic::unwind_safe::UnwindSafe for mxaccess::BufferedSubscription
pub struct mxaccess::ConnectionOptions
impl core::clone::Clone for mxaccess::ConnectionOptions
pub fn mxaccess::ConnectionOptions::clone(&self) -> mxaccess::ConnectionOptions
impl core::fmt::Debug for mxaccess::ConnectionOptions
pub fn mxaccess::ConnectionOptions::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
impl core::marker::Freeze for mxaccess::ConnectionOptions
impl core::marker::Send for mxaccess::ConnectionOptions
impl core::marker::Sync for mxaccess::ConnectionOptions
impl core::marker::Unpin for mxaccess::ConnectionOptions
impl core::marker::UnsafeUnpin for mxaccess::ConnectionOptions
impl core::panic::unwind_safe::RefUnwindSafe for mxaccess::ConnectionOptions
impl core::panic::unwind_safe::UnwindSafe for mxaccess::ConnectionOptions
pub struct mxaccess::DataChange
pub mxaccess::DataChange::quality: u16
pub mxaccess::DataChange::reference: alloc::sync::Arc<str>
pub mxaccess::DataChange::status: mxaccess_codec::status::MxStatus
pub mxaccess::DataChange::timestamp: std::time::SystemTime
pub mxaccess::DataChange::value: mxaccess_codec::value::MxValue
impl core::clone::Clone for mxaccess::DataChange
pub fn mxaccess::DataChange::clone(&self) -> mxaccess::DataChange
impl core::fmt::Debug for mxaccess::DataChange
pub fn mxaccess::DataChange::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
impl core::marker::Freeze for mxaccess::DataChange
impl core::marker::Send for mxaccess::DataChange
impl core::marker::Sync for mxaccess::DataChange
impl core::marker::Unpin for mxaccess::DataChange
impl core::marker::UnsafeUnpin for mxaccess::DataChange
impl core::panic::unwind_safe::RefUnwindSafe for mxaccess::DataChange
impl core::panic::unwind_safe::UnwindSafe for mxaccess::DataChange
#[non_exhaustive] pub struct mxaccess::OperationContext
pub mxaccess::OperationContext::correlation_id: [u8; 16]
pub mxaccess::OperationContext::op_kind: mxaccess::session::OperationKind
pub mxaccess::OperationContext::reference: core::option::Option<alloc::sync::Arc<str>>
pub mxaccess::OperationContext::retry_count: u32
impl core::clone::Clone for mxaccess::session::OperationContext
pub fn mxaccess::session::OperationContext::clone(&self) -> mxaccess::session::OperationContext
impl core::fmt::Debug for mxaccess::session::OperationContext
pub fn mxaccess::session::OperationContext::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
impl core::marker::Freeze for mxaccess::session::OperationContext
impl core::marker::Send for mxaccess::session::OperationContext
impl core::marker::Sync for mxaccess::session::OperationContext
impl core::marker::Unpin for mxaccess::session::OperationContext
impl core::marker::UnsafeUnpin for mxaccess::session::OperationContext
impl core::panic::unwind_safe::RefUnwindSafe for mxaccess::session::OperationContext
impl core::panic::unwind_safe::UnwindSafe for mxaccess::session::OperationContext
#[non_exhaustive] pub struct mxaccess::OperationStatus
pub mxaccess::OperationStatus::context: core::option::Option<mxaccess::session::OperationContext>
pub mxaccess::OperationStatus::is_during_recovery: bool
pub mxaccess::OperationStatus::raw: mxaccess_codec::operation_status::NmxOperationStatusMessage
pub mxaccess::OperationStatus::status: mxaccess_codec::status::MxStatus
impl core::clone::Clone for mxaccess::session::OperationStatus
pub fn mxaccess::session::OperationStatus::clone(&self) -> mxaccess::session::OperationStatus
impl core::fmt::Debug for mxaccess::session::OperationStatus
pub fn mxaccess::session::OperationStatus::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
impl core::marker::Freeze for mxaccess::session::OperationStatus
impl core::marker::Send for mxaccess::session::OperationStatus
impl core::marker::Sync for mxaccess::session::OperationStatus
impl core::marker::Unpin for mxaccess::session::OperationStatus
impl core::marker::UnsafeUnpin for mxaccess::session::OperationStatus
impl core::panic::unwind_safe::RefUnwindSafe for mxaccess::session::OperationStatus
impl core::panic::unwind_safe::UnwindSafe for mxaccess::session::OperationStatus
pub struct mxaccess::RecoveryPolicy
pub mxaccess::RecoveryPolicy::delay: core::time::Duration
pub mxaccess::RecoveryPolicy::max_attempts: u32
impl mxaccess::RecoveryPolicy
pub const mxaccess::RecoveryPolicy::SINGLE_ATTEMPT: mxaccess::RecoveryPolicy
pub fn mxaccess::RecoveryPolicy::validate(&self) -> core::result::Result<(), mxaccess::ConfigError>
impl core::clone::Clone for mxaccess::RecoveryPolicy
pub fn mxaccess::RecoveryPolicy::clone(&self) -> mxaccess::RecoveryPolicy
impl core::cmp::Eq for mxaccess::RecoveryPolicy
impl core::cmp::PartialEq for mxaccess::RecoveryPolicy
pub fn mxaccess::RecoveryPolicy::eq(&self, other: &mxaccess::RecoveryPolicy) -> bool
impl core::default::Default for mxaccess::RecoveryPolicy
pub fn mxaccess::RecoveryPolicy::default() -> Self
impl core::fmt::Debug for mxaccess::RecoveryPolicy
pub fn mxaccess::RecoveryPolicy::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
impl core::hash::Hash for mxaccess::RecoveryPolicy
pub fn mxaccess::RecoveryPolicy::hash<__H: core::hash::Hasher>(&self, state: &mut __H)
impl core::marker::Copy for mxaccess::RecoveryPolicy
impl core::marker::StructuralPartialEq for mxaccess::RecoveryPolicy
impl core::marker::Freeze for mxaccess::RecoveryPolicy
impl core::marker::Send for mxaccess::RecoveryPolicy
impl core::marker::Sync for mxaccess::RecoveryPolicy
impl core::marker::Unpin for mxaccess::RecoveryPolicy
impl core::marker::UnsafeUnpin for mxaccess::RecoveryPolicy
impl core::panic::unwind_safe::RefUnwindSafe for mxaccess::RecoveryPolicy
impl core::panic::unwind_safe::UnwindSafe for mxaccess::RecoveryPolicy
pub struct mxaccess::SecurityContext
pub mxaccess::SecurityContext::current_user_id: i32
pub mxaccess::SecurityContext::verifier_user_id: i32
impl core::clone::Clone for mxaccess::SecurityContext
pub fn mxaccess::SecurityContext::clone(&self) -> mxaccess::SecurityContext
impl core::fmt::Debug for mxaccess::SecurityContext
pub fn mxaccess::SecurityContext::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
impl core::marker::Freeze for mxaccess::SecurityContext
impl core::marker::Send for mxaccess::SecurityContext
impl core::marker::Sync for mxaccess::SecurityContext
impl core::marker::Unpin for mxaccess::SecurityContext
impl core::marker::UnsafeUnpin for mxaccess::SecurityContext
impl core::panic::unwind_safe::RefUnwindSafe for mxaccess::SecurityContext
impl core::panic::unwind_safe::UnwindSafe for mxaccess::SecurityContext
pub struct mxaccess::Session
impl mxaccess::Session
pub async fn mxaccess::Session::callback_exporter_addr(&self) -> core::option::Option<core::net::socket_addr::SocketAddr>
pub fn mxaccess::Session::callbacks(&self) -> tokio::sync::broadcast::Receiver<alloc::sync::Arc<mxaccess_codec::subscription_message::NmxSubscriptionMessage>>
pub async fn mxaccess::Session::connect_nmx(addr: core::net::socket_addr::SocketAddr, options: mxaccess::SessionOptions, ntlm: mxaccess_rpc::ntlm::NtlmClientContext, service_ipid: mxaccess_rpc::guid::Guid, resolver: alloc::sync::Arc<dyn mxaccess_galaxy::resolver::Resolver>, recovery: mxaccess::RecoveryPolicy) -> core::result::Result<Self, mxaccess::Error>
pub async fn mxaccess::Session::has_recovery_factory(&self) -> bool
pub fn mxaccess::Session::operation_status_events(&self) -> tokio::sync::broadcast::Receiver<alloc::sync::Arc<mxaccess::session::OperationStatus>>
pub fn mxaccess::Session::operation_status_stream(&self) -> impl futures_core::stream::Stream<Item = core::result::Result<alloc::sync::Arc<mxaccess::session::OperationStatus>, mxaccess::Error>> + core::marker::Send
pub async fn mxaccess::Session::read(&self, reference: &str, timeout: core::time::Duration) -> core::result::Result<mxaccess::DataChange, mxaccess::Error>
pub async fn mxaccess::Session::recover_connection(&self, policy: mxaccess::RecoveryPolicy) -> core::result::Result<(), mxaccess::Error>
pub fn mxaccess::Session::recovery_events(&self) -> tokio::sync::broadcast::Receiver<alloc::sync::Arc<mxaccess::RecoveryEvent>>
pub async fn mxaccess::Session::resolve_tag(&self, reference: &str) -> core::result::Result<mxaccess_galaxy::metadata::GalaxyTagMetadata, mxaccess::Error>
pub async fn mxaccess::Session::resolve_write_kind(&self, reference: &str) -> core::result::Result<mxaccess_codec::value::MxValueKind, mxaccess::Error>
pub async fn mxaccess::Session::set_recovery_factory(&self, factory: mxaccess::session::RebuildFactory)
pub async fn mxaccess::Session::shutdown_nmx(self) -> core::result::Result<(), mxaccess::Error>
pub async fn mxaccess::Session::subscribe(&self, reference: &str) -> core::result::Result<mxaccess::session::Subscription, mxaccess::Error>
pub async fn mxaccess::Session::unsubscribe(&self, subscription: mxaccess::session::Subscription) -> core::result::Result<(), mxaccess::Error>
pub async fn mxaccess::Session::write_value(&self, reference: &str, value: mxaccess_codec::write_message::WriteValue) -> core::result::Result<(), mxaccess::Error>
pub async fn mxaccess::Session::write_value_at(&self, reference: &str, value: mxaccess_codec::write_message::WriteValue, timestamp_filetime: i64) -> core::result::Result<(), mxaccess::Error>
pub async fn mxaccess::Session::write_value_secured_at(&self, reference: &str, value: mxaccess_codec::write_message::WriteValue, timestamp_filetime: i64, security: mxaccess::SecurityContext) -> core::result::Result<(), mxaccess::Error>
impl mxaccess::Session
pub async fn mxaccess::Session::connect(_options: mxaccess::ConnectionOptions) -> core::result::Result<Self, mxaccess::Error>
pub async fn mxaccess::Session::shutdown(self, timeout: core::time::Duration) -> core::result::Result<(), mxaccess::Error>
pub async fn mxaccess::Session::subscribe_buffered(&self, reference: &str, options: mxaccess::BufferedOptions) -> core::result::Result<mxaccess::session::Subscription, mxaccess::Error>
pub async fn mxaccess::Session::subscribe_many(&self, _references: &[&str]) -> core::result::Result<mxaccess::session::Subscription, mxaccess::Error>
pub async fn mxaccess::Session::write(&self, reference: &str, value: mxaccess_codec::value::MxValue) -> core::result::Result<(), mxaccess::Error>
pub async fn mxaccess::Session::write_secured(&self, _reference: &str, _value: mxaccess_codec::value::MxValue, _security: mxaccess::SecurityContext) -> core::result::Result<(), mxaccess::Error>
pub async fn mxaccess::Session::write_secured_at(&self, reference: &str, value: mxaccess_codec::value::MxValue, timestamp: std::time::SystemTime, security: mxaccess::SecurityContext) -> core::result::Result<(), mxaccess::Error>
pub async fn mxaccess::Session::write_with_completion(&self, _reference: &str, _value: mxaccess_codec::value::MxValue, _client_token: u32) -> core::result::Result<(), mxaccess::Error>
pub async fn mxaccess::Session::write_with_timestamp(&self, reference: &str, value: mxaccess_codec::value::MxValue, timestamp: std::time::SystemTime) -> core::result::Result<(), mxaccess::Error>
impl core::clone::Clone for mxaccess::Session
pub fn mxaccess::Session::clone(&self) -> mxaccess::Session
impl core::fmt::Debug for mxaccess::Session
pub fn mxaccess::Session::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
impl core::marker::Freeze for mxaccess::Session
impl core::marker::Send for mxaccess::Session
impl core::marker::Sync for mxaccess::Session
impl core::marker::Unpin for mxaccess::Session
impl core::marker::UnsafeUnpin for mxaccess::Session
impl !core::panic::unwind_safe::RefUnwindSafe for mxaccess::Session
impl !core::panic::unwind_safe::UnwindSafe for mxaccess::Session
pub struct mxaccess::SessionOptions
pub mxaccess::SessionOptions::engine_name: alloc::string::String
pub mxaccess::SessionOptions::galaxy_id: u8
pub mxaccess::SessionOptions::heartbeat_max_missed_ticks: i32
pub mxaccess::SessionOptions::heartbeat_ticks_per_beat: core::option::Option<i32>
pub mxaccess::SessionOptions::local_engine_id: i32
pub mxaccess::SessionOptions::partner_version: i32
pub mxaccess::SessionOptions::source_platform_id: i32
impl mxaccess::SessionOptions
pub fn mxaccess::SessionOptions::default_engine_name() -> alloc::string::String
pub fn mxaccess::SessionOptions::default_local_engine_id() -> i32
impl core::clone::Clone for mxaccess::SessionOptions
pub fn mxaccess::SessionOptions::clone(&self) -> mxaccess::SessionOptions
impl core::cmp::Eq for mxaccess::SessionOptions
impl core::cmp::PartialEq for mxaccess::SessionOptions
pub fn mxaccess::SessionOptions::eq(&self, other: &mxaccess::SessionOptions) -> bool
impl core::default::Default for mxaccess::SessionOptions
pub fn mxaccess::SessionOptions::default() -> Self
impl core::fmt::Debug for mxaccess::SessionOptions
pub fn mxaccess::SessionOptions::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
impl core::hash::Hash for mxaccess::SessionOptions
pub fn mxaccess::SessionOptions::hash<__H: core::hash::Hasher>(&self, state: &mut __H)
impl core::marker::StructuralPartialEq for mxaccess::SessionOptions
impl core::marker::Freeze for mxaccess::SessionOptions
impl core::marker::Send for mxaccess::SessionOptions
impl core::marker::Sync for mxaccess::SessionOptions
impl core::marker::Unpin for mxaccess::SessionOptions
impl core::marker::UnsafeUnpin for mxaccess::SessionOptions
impl core::panic::unwind_safe::RefUnwindSafe for mxaccess::SessionOptions
impl core::panic::unwind_safe::UnwindSafe for mxaccess::SessionOptions
pub struct mxaccess::Subscription
impl mxaccess::session::Subscription
pub fn mxaccess::session::Subscription::correlation_id(&self) -> [u8; 16]
pub fn mxaccess::session::Subscription::metadata(&self) -> &mxaccess_galaxy::metadata::GalaxyTagMetadata
pub fn mxaccess::session::Subscription::reference(&self) -> &str
impl core::fmt::Debug for mxaccess::session::Subscription
pub fn mxaccess::session::Subscription::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
impl futures_core::stream::Stream for mxaccess::session::Subscription
pub type mxaccess::session::Subscription::Item = core::result::Result<mxaccess::DataChange, mxaccess::Error>
pub fn mxaccess::session::Subscription::poll_next(self: core::pin::Pin<&mut Self>, cx: &mut core::task::wake::Context<'_>) -> core::task::poll::Poll<core::option::Option<Self::Item>>
impl core::marker::Freeze for mxaccess::session::Subscription
impl core::marker::Send for mxaccess::session::Subscription
impl core::marker::Sync for mxaccess::session::Subscription
impl core::marker::Unpin for mxaccess::session::Subscription
impl core::marker::UnsafeUnpin for mxaccess::session::Subscription
impl !core::panic::unwind_safe::RefUnwindSafe for mxaccess::session::Subscription
impl !core::panic::unwind_safe::UnwindSafe for mxaccess::session::Subscription
pub struct mxaccess::TransportCapabilities
pub mxaccess::TransportCapabilities::activate_suspend: bool
pub mxaccess::TransportCapabilities::buffered_subscribe: bool
pub mxaccess::TransportCapabilities::operation_complete_frame: bool
impl core::clone::Clone for mxaccess::TransportCapabilities
pub fn mxaccess::TransportCapabilities::clone(&self) -> mxaccess::TransportCapabilities
impl core::fmt::Debug for mxaccess::TransportCapabilities
pub fn mxaccess::TransportCapabilities::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
impl core::marker::Copy for mxaccess::TransportCapabilities
impl core::marker::Freeze for mxaccess::TransportCapabilities
impl core::marker::Send for mxaccess::TransportCapabilities
impl core::marker::Sync for mxaccess::TransportCapabilities
impl core::marker::Unpin for mxaccess::TransportCapabilities
impl core::marker::UnsafeUnpin for mxaccess::TransportCapabilities
impl core::panic::unwind_safe::RefUnwindSafe for mxaccess::TransportCapabilities
impl core::panic::unwind_safe::UnwindSafe for mxaccess::TransportCapabilities
pub trait mxaccess::Transport: core::marker::Send + core::marker::Sync + 'static
pub fn mxaccess::Transport::capabilities(&self) -> mxaccess::TransportCapabilities
pub fn mxaccess::Transport::kind(&self) -> mxaccess::TransportKind
impl<T: tokio::io::async_read::AsyncRead + tokio::io::async_write::AsyncWrite + core::marker::Unpin + core::marker::Send + core::marker::Sync + 'static> mxaccess::Transport for mxaccess::transport_asb::AsbTransport<T>
pub fn mxaccess::transport_asb::AsbTransport<T>::capabilities(&self) -> mxaccess::TransportCapabilities
pub fn mxaccess::transport_asb::AsbTransport<T>::kind(&self) -> mxaccess::TransportKind
pub type mxaccess::RebuildFactory = alloc::sync::Arc<(dyn core::ops::function::Fn() -> core::pin::Pin<alloc::boxed::Box<(dyn core::future::future::Future<Output = core::result::Result<mxaccess_nmx::client::NmxClient, mxaccess_nmx::client::NmxClientError>> + core::marker::Send)>> + core::marker::Send + core::marker::Sync)>