//! Rust client for the MXAccess Gateway.
//!
//! The crate compiles generated `tonic` bindings from the shared gateway
//! protobuf contracts and exposes a small handwritten surface — connection
//! options, an authentication interceptor, gateway and Galaxy Repository
//! clients, an `MxValue` builder/projection, and protocol-error types — that
//! application code can use without touching the generated modules directly.
//!
//! See the project root `RustClientDesign.md` for the design rationale and
//! the cross-language client matrix.

#![warn(missing_docs)]

pub mod auth;
pub mod client;
pub mod error;
pub mod galaxy;
pub mod generated;
pub mod options;
pub mod session;
pub mod value;
pub mod version;

#[doc(inline)]
pub use auth::{ApiKey, AuthInterceptor};
#[doc(inline)]
pub use client::{AlarmFeedStream, EventItem, EventStream, GatewayClient};
#[doc(inline)]
pub use error::{CommandError, Error, MxAccessError};
#[doc(inline)]
pub use galaxy::{DeployEventStream, GalaxyClient};
#[doc(inline)]
pub use generated::mxaccess_gateway::v1::ReplayGap;
#[doc(inline)]
pub use options::ClientOptions;
#[doc(inline)]
pub use session::{next_correlation_id, Session};
#[doc(inline)]
pub use value::{MxArrayProjection, MxArrayValue, MxStatus, MxValue, MxValueProjection};
#[doc(inline)]
pub use version::{CLIENT_VERSION, GATEWAY_PROTOCOL_VERSION, WORKER_PROTOCOL_VERSION};
