#![deny(missing_docs, unsafe_op_in_unsafe_fn, rust_2018_idioms)]
#![forbid(clippy::dbg_macro, clippy::print_stdout)]
#[cfg(all(feature = "accept-degraded-entropy", feature = "safety-profile-strict"))]
compile_error!(
"`accept-degraded-entropy` cannot be combined with `safety-profile-strict` \
— Class-A safety-critical builds intentionally exclude the non-cryptographic \
IV-derivation fallback (`fallback_iv_random`). Choose one: drop the \
degraded-entropy variant, or drop the strict safety profile."
);
pub mod client;
pub mod transport;
#[cfg(feature = "secure-udp")]
pub mod secure_transport;
#[cfg(feature = "panic-handler")]
pub mod panic;
pub use client::{classify_send_error, BeatError, BeatOutcome, DropReason, Varta};
pub use transport::{BeatTransport, UdsTransport};
#[cfg(feature = "udp")]
pub use transport::UdpTransport;
#[cfg(feature = "secure-udp")]
pub use secure_transport::SecureUdpTransport;
pub use varta_vlp::{DecodeError, Frame, Status, NONCE_TERMINAL};
#[cfg(feature = "panic-handler")]
pub use panic::install as install_panic_handler;
#[cfg(all(feature = "panic-handler", feature = "udp"))]
pub use panic::install_panic_handler_udp;
#[cfg(all(feature = "panic-handler", feature = "secure-udp"))]
pub use panic::PanicInstallError;
#[cfg(all(feature = "panic-handler", feature = "secure-udp"))]
pub use panic::install_panic_handler_secure_udp;
#[cfg(feature = "accept-degraded-entropy")]
pub use panic::install_panic_handler_secure_udp_accept_degraded_entropy;