1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
//! Rust client for the [Motorcortex] real-time control system.
//!
//! Implements the wire protocol defined by `motorcortex.proto` over
//! NNG + WebSocket Secure: request/reply for parameter access,
//! publish/subscribe for real-time streaming, and the session-token
//! dance that keeps long-lived connections alive through reverse
//! proxies and transient server restarts.
//!
//! Two frontends share one actor-style core:
//!
//! - [`core`] — async (tokio-driven). The recommended surface.
//! Handles are `Clone + Send + Sync`; multiple tasks share one
//! connection safely.
//! - [`blocking`] — thin sync wrapper for scripts, tests, and code
//! that doesn't want a tokio runtime in `main()`. Same method
//! names and semantics, just without `.await`.
//!
//! # Example — async round-trip
//!
//! ```no_run
//! use motorcortex_rust::core::Request;
//! use motorcortex_rust::{ConnectionOptions, Result};
//!
//! # async fn demo() -> Result<()> {
//! let opts = ConnectionOptions::new("tests/mcx.cert.crt".into(), 5000, 5000);
//! let req = Request::connect_to("wss://127.0.0.1:5568", opts).await?;
//! req.login("root", "secret").await?;
//! req.request_parameter_tree().await?;
//!
//! let value: f64 = req.get_parameter("root/Control/dummyDouble").await?;
//! println!("{value}");
//!
//! req.disconnect().await?;
//! # Ok(())
//! # }
//! ```
//!
//! See the [`examples/`] directory for blocking, subscribe-latest,
//! and subscribe-stream flavours, and [ARCHITECTURE.md] for the
//! design rationale — actor driver, three-sink subscription model,
//! reconnect + session-token machinery.
//!
//! [Motorcortex]: https://www.vectioneer.com/motorcortex
//! [`examples/`]: https://git.vectioneer.com/pub/motorcortex-rust/-/tree/master/examples
//! [ARCHITECTURE.md]: https://git.vectioneer.com/pub/motorcortex-rust/-/blob/master/ARCHITECTURE.md
pub use ;
pub use ConnectionOptions;
pub use ConnectionState;
pub use ;
pub use *;
pub use *;
pub use *;
pub use ;
pub use TimeSpec;
pub use parse_url;