1#![cfg_attr(docsrs, feature(doc_cfg))]
6
7mod backend;
17mod error;
18mod message;
19mod state;
20mod stats;
21mod types;
22
23#[cfg(test)]
24mod tests;
25
26pub use backend::{Backend, BusMessage};
27pub use error::{Error, ErrorCode, Result};
28pub use message::{JsonRpcMessage, JsonRpcRequest, JsonRpcResponse, JsonRpcError};
29pub use state::BusState;
30pub use stats::BusStats;
31pub use types::{BackendMode, RequestOptions, Identity, Extensions, ExtensionInfo, DockerOptions, PoolConfig, LimitsConfig, BusConfig, ConfigSource};
32
33use std::time::{SystemTime, UNIX_EPOCH};
34
35pub fn generate_client_session_id() -> String {
39 let timestamp = SystemTime::now()
40 .duration_since(UNIX_EPOCH)
41 .unwrap_or_default()
42 .as_millis();
43
44 let uuid = uuid::Uuid::new_v4();
46 let suffix = &uuid.to_string()[0..6];
47
48 format!("client-{}-{}", timestamp, suffix)
49}