pub mod health;
pub mod messages;
pub mod outbound_label;
pub mod pairing;
pub mod queue;
pub mod quote_route;
pub mod registry;
pub mod router;
pub mod vtoken_hash;
mod commands;
mod dispatch;
mod state;
pub mod ilink_status {
pub const UNKNOWN: u8 = 0;
pub const CONNECTED: u8 = 1;
pub const NEEDS_LOGIN: u8 = 2;
pub const LOGGING_IN: u8 = 3;
pub fn as_str(code: u8) -> &'static str {
match code {
UNKNOWN => "unknown",
CONNECTED => "connected",
NEEDS_LOGIN => "needs_login",
LOGGING_IN => "logging_in",
_ => "unknown",
}
}
}
pub use dispatch::{
build_hub_ext_for_vctx, push_to_queue_pub, resolve_vctx_for_message, spawn_dispatcher,
};
pub use health::spawn_health_checker;
pub use outbound_label::{
append_outbound_origin_footer_to_first_text_item, apply_persona_and_footer_to_first_text_item,
format_outbound_origin_line, should_append_outbound_origin_label,
};
pub use pairing::PairingRegistry;
pub use queue::{InMemoryQueue, MessageQueue};
pub use quote_route::{
collect_quoted, collect_quoted_msg_id, collect_quoted_timestamp, footer_from_user_quote,
merge_routing_with_quote, parse_footer_from_quoted_text, QuoteOrigin,
};
pub use registry::{ClientInfo, ClientRegistry};
pub use router::{HubCommand, Router, RoutingDecision};
pub use state::{
AdminConfig, ClientState, EnterOutcome, HubState, IlinkConnState, LatencyGuard,
LatencyHistogram, Metrics, PollGuard, PollTracker, RoutingState, HISTOGRAM_BUCKETS_MS,
MAX_CONCURRENT_POLLS_PER_VTOKEN, MAX_HUB_POLLS_DEFAULT,
};
pub use vtoken_hash::{hash_vtoken, is_vtoken_hash};
#[cfg(test)]
mod tests;
#[cfg(test)]
mod ilink_status_tests {
use super::ilink_status;
#[test]
fn ilink_status_str_covers_all_codes() {
let known = [
(ilink_status::UNKNOWN, "unknown"),
(ilink_status::CONNECTED, "connected"),
(ilink_status::NEEDS_LOGIN, "needs_login"),
(ilink_status::LOGGING_IN, "logging_in"),
];
for (code, expected) in known {
assert_eq!(
ilink_status::as_str(code),
expected,
"as_str({code}) should return \"{expected}\""
);
}
assert_eq!(ilink_status::as_str(99), "unknown");
}
}