//! LatticeArc Prelude
//!
//! Common types, traits, and utilities used throughout LatticeArc.
//! Provides error handling, domain constants, and testing infrastructure.
//!
//! # Example
//!
//! ```rust
//! use latticearc::prelude::error::{LatticeArcError, Result};
//!
//! fn example_operation() -> Result<()> {
//!     // Your cryptographic operation here
//!     Ok(())
//! }
//! ```

#![deny(unsafe_code)]
#![deny(missing_docs)]
#![deny(clippy::unwrap_used)]
#![deny(clippy::panic)]

/// CAVP (Cryptographic Algorithm Validation Program) compliance testing.
pub mod cavp_compliance;
/// CI/CD testing framework and automation.
pub mod ci_testing_framework;
/// Comprehensive error handling and recovery systems.
pub mod error;
/// Formal verification infrastructure using Kani model checker.
pub mod formal_verification;
/// Memory safety testing and validation utilities.
pub mod memory_safety_testing;
/// Property-based testing using proptest framework.
pub mod property_based_testing;
/// Side-channel timing analysis for cryptographic operations.
pub mod side_channel_analysis;

// Re-export common error types
pub use error::{LatticeArcError, Result};

/// Envelope / wire-format version number for serialized cryptographic payloads.
///
/// Distinct from `latticearc::VERSION` (the Cargo package version string).
/// Bumped when the on-disk or over-the-wire serialized format changes in a
/// non-backward-compatible way.
pub const ENVELOPE_FORMAT_VERSION: u8 = 1;
