#![deny(
unsafe_code,
reason = r#"
If we absolutely need unsafe code, it should be isolated within a separate small crate that exposes a sound safe API.
"sound" means that it is impossible for any interaction with the public API of the crate to violate an unsafe invariant which causes UB."#
)]
#![deny(
clippy::print_stdout,
reason = "Accidentally printing would break json log output"
)]
#![deny(
clippy::print_stderr,
reason = "Accidentally printing would break json log output."
)]
#![cfg_attr(
any(
not(feature = "cassandra"),
not(feature = "valkey"),
not(feature = "kafka"),
not(feature = "opensearch"),
),
allow(dead_code, unused_imports, unused_variables, unused_mut)
)]
#[cfg(all(
not(feature = "cassandra"),
not(feature = "valkey"),
not(feature = "kafka"),
not(feature = "opensearch"),
))]
compile_error!(
"At least one protocol feature must be enabled, e.g. `cassandra`, `valkey`, `kafka` or `opensearch`"
);
pub mod codec;
pub mod config;
pub mod connection;
mod connection_span;
pub mod frame;
pub mod hot_reload;
mod http;
pub mod message;
mod observability;
pub mod runner;
mod server;
pub mod sources;
pub mod tcp;
pub mod tls;
mod tracing_panic_handler;
pub mod transforms;
#[macro_export]
macro_rules! import_transform {
($ty:ty) => {
use $ty;
const _: fn() = || {
fn assert_impls_transform_config<T: ?Sized + shotover::transforms::TransformConfig>() {}
assert_impls_transform_config::<$ty>();
};
};
}