//! e2e-protection (v0.4.0)
//!
//! Profile-first E2E toolkit with a tiny session layer.
//! - Core: `E2eProfile`, `E2eSession`, `CounterPolicy`
//! - Feature `autosar`: provides P11, P22, P44, P7, P4m, P7m
//!
//! See each profile module’s docs for wire details.
//!
//! ```
//! use e2e_protection::{E2eSession, CounterPolicy, E2eProfile};
//! #[cfg(feature="autosar")]
//! use e2e_protection::profiles::autosar::profile11::{P11, P11DataIdMode};
//!
//! #[cfg(feature="autosar")]
//! # fn main() -> Result<(), e2e_protection::E2eError> {
//! let mut tx = E2eSession::new(
//! P11 { mode: P11DataIdMode::Both { data_id: 0x0042 } },
//! CounterPolicy::Rollover { bits: 4, step: 1 },
//! );
//! let frame = tx.wrap(&[0x12, 0x34])?;
//!
//! let mut rx = E2eSession::new(
//! P11 { mode: P11DataIdMode::Both { data_id: 0x0042 } },
//! CounterPolicy::Rollover { bits: 4, step: 1 },
//! );
//! let pl = rx.unwrap(&frame)?;
//! assert_eq!(pl, &[0x12, 0x34]);
//! # Ok(()) }
//! #[cfg(not(feature="autosar"))]
//! # fn main() {}
//! ```
pub use ;