#![allow(unused)]
#![allow(private_interfaces)]
#![allow(private_bounds)]
#![allow(non_snake_case)]
#![allow(deprecated)]
#![allow(
clippy::module_inception,
reason = "DDD layers retain their established module paths"
)]
#![allow(
clippy::doc_lazy_continuation,
reason = "Retain the existing public API documentation layout"
)]
#![allow(
clippy::too_many_arguments,
reason = "Transport orchestration passes independent connection resources explicitly"
)]
#![allow(
clippy::declare_interior_mutable_const,
reason = "Default atomics are templates for independent owned configuration values"
)]
#![allow(
clippy::borrow_interior_mutable_const,
reason = "Builders snapshot default atomic templates rather than sharing mutable globals"
)]
#![allow(
clippy::new_without_default,
reason = "Existing constructors include async and lifetime-bound initialization"
)]
#![allow(
clippy::let_underscore_future,
reason = "Background Tokio tasks intentionally outlive their detached join handles"
)]
#![allow(
clippy::redundant_guards,
reason = "Protocol branches retain explicit guards for readability"
)]
#![allow(
clippy::collapsible_if,
reason = "Nested protocol checks keep validation and recovery stages distinct"
)]
#![allow(
clippy::unused_unit,
reason = "System parameter macros support the zero-argument handler case"
)]
#![allow(
clippy::unnecessary_cast,
reason = "Platform-dependent socket and benchmark types use explicit conversions"
)]
pub(crate) mod application;
mod const_config;
pub(crate) mod domain;
mod error;
pub(crate) mod infrastructure;
pub extern crate bytes;
pub extern crate tokio;
pub extern crate tracing;
pub extern crate tracing_subscriber;
pub use error::{LynnError, Result};
#[cfg(feature = "metrics")]
pub mod lynn_metrics {
pub use super::infrastructure::metrics::metrics::{METRICS, Metrics, Timer, export_metrics};
pub use super::infrastructure::metrics::metrics_server::{
MetricsServerConfig, serve_metrics, spawn_metrics_server,
};
pub use prometheus;
}
#[cfg(feature = "server")]
pub mod lynn_server {
pub use super::application::server::lynn_server::LynnServer;
pub use super::application::server::server_config::LynnServerConfig;
pub use super::application::server::server_config::LynnServerConfigBuilder;
pub use super::domain::handler::handler_system::ClientsContext;
}
#[cfg(any(feature = "server", feature = "client"))]
pub mod lynn_tcp_dependents {
pub use super::domain::model::handler_result::HandlerResult;
pub use super::domain::model::input_buf_vo::InputBufVO;
pub use super::domain::model::input_buf_vo::InputBufVOTrait;
pub use super::domain::state::app_state::AppState;
pub use super::lynn_state;
}
#[cfg(any(feature = "server", feature = "client"))]
pub mod lynn_state {
pub use super::domain::state::app_state::AppState;
pub use super::domain::state::state_registry::StateRegistry;
}
#[cfg(feature = "seaorm")]
pub mod lynn_seaorm {
pub use sea_orm;
pub type DbConn = super::domain::state::app_state::AppState<sea_orm::DatabaseConnection>;
}
#[cfg(feature = "tls")]
pub mod lynn_tls {
pub use super::infrastructure::tls::tls_config::TlsClientConfig;
pub use super::infrastructure::tls::tls_config::TlsClientConfigBuilder;
pub use super::infrastructure::tls::tls_config::TlsServerConfig;
pub use rustls;
}
#[cfg(feature = "client")]
pub mod lynn_client {
pub use super::application::client::client_config::LynnClientConfig;
pub use super::application::client::client_config::LynnClientConfigBuilder;
pub use super::application::client::lynn_client::LynnClient;
}