#![expect(
clippy::cast_possible_truncation,
clippy::cast_possible_wrap,
clippy::cast_precision_loss,
clippy::expect_used,
clippy::indexing_slicing,
clippy::manual_let_else,
clippy::missing_errors_doc,
clippy::missing_panics_doc,
clippy::allow_attributes,
clippy::allow_attributes_without_reason,
clippy::uninlined_format_args,
clippy::unwrap_used,
reason = "pre-existing server runtime lint debt is tracked in policy/clippy-debt.toml"
)]
pub mod evidence;
pub mod grpc;
pub mod handlers;
pub mod metrics;
pub mod middleware;
pub mod models;
pub mod redaction;
pub mod routes;
pub mod server;
pub use models::{
AckPolicyAcceptOn, AckPolicyConfig, AckPolicyMode, AckPolicyRejectCondition, QuarantineConfig,
};
pub use routes::build_router;
pub use server::{AppState, CorsAllowedOrigins, Server, ServerBuilder, ServerConfig};
#[derive(Debug, thiserror::Error)]
#[expect(
clippy::error_impl_error,
reason = "public server API intentionally exposes Error as the crate result error type"
)]
pub enum Error {
#[error("Bind error: {0}")]
Bind(#[from] std::io::Error),
#[error("Configuration error: {0}")]
Config(String),
#[error("Parse error: {0}")]
Parse(#[from] hl7v2::Error),
#[error("Validation error: {0}")]
Validation(String),
#[error("Internal server error: {0}")]
Internal(String),
}
pub type Result<T> = std::result::Result<T, Error>;