#![cfg_attr(docsrs, feature(doc_cfg))]
mod backend;
mod error;
mod message;
mod state;
mod stats;
mod types;
#[cfg(test)]
mod tests;
pub use backend::{Backend, BusMessage};
pub use error::{Error, ErrorCode, Result};
pub use message::{JsonRpcMessage, JsonRpcRequest, JsonRpcResponse, JsonRpcError};
pub use state::BusState;
pub use stats::BusStats;
pub use types::{BackendMode, RequestOptions, Identity, Extensions, ExtensionInfo, DockerOptions, PoolConfig, LimitsConfig, BusConfig, ConfigSource};
use std::time::{SystemTime, UNIX_EPOCH};
pub fn generate_client_session_id() -> String {
let timestamp = SystemTime::now()
.duration_since(UNIX_EPOCH)
.unwrap_or_default()
.as_millis();
let uuid = uuid::Uuid::new_v4();
let suffix = &uuid.to_string()[0..6];
format!("client-{}-{}", timestamp, suffix)
}