//! A const-generic batch container for [`U256`] values.
//!
//! `U256Batch<N>` wraps a fixed-size `[U256; N]` array, providing
//! batch operations (such as Montgomery batch inversion) with
//! compile-time-known sizes. This eliminates runtime length-mismatch
//! panics and enables type-safe batch processing for parallel
//! algorithms like Pollard's Kangaroo.

use crate::u256::U256;

/// A batch of `N` 256-bit unsigned integers stored as a fixed-size array.
///
/// The inner `[U256; N]` field is public for direct element access via
/// `.0[i]`. The batch is `Clone` and `Eq` but deliberately not `Copy`,
/// since large batches (N=1024 → 32 KB) should not be implicitly copied.
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct U256Batch<const N: usize>(pub [U256; N]);

mod mod_inv;
mod new;
