//! Stream Adapter: stream-side validation for the [`super`] `contract_outer` deferred fold.
//!
//! [`verify_stream_adapter`] checks that the input `Time`/`Packet` can be expanded into the joint
//! computation mapping (inner-flit packet match, Time-divides-OutTime, broadcast axes confined to
//! innermost positions): the validity contract the deferred stash must still honor even though it no
//! longer materializes the expansion.
use *;
use crateScalar;
/// Validates the stream-side mapping transformation for the [`super`] `contract_outer`.
///
/// `OutPacket` collects `PackSize` flits (`∈ {1, 2}`), and packing absorbs the
/// innermost `PackSize` cells of `Time` into the packet. The joint mapping is then:
/// - `OutPacket = [packed, inner flit]`, where the inner flit equals the input
/// `Packet` and `packed` equals the innermost `PackSize` cells of `Time`,
/// padding included (a padded packed cell must have come from padding in `Time`).
/// - `OutTime = [outer, broadcast]`, where `outer` is the rest of `Time` and the
/// broadcast (tiling) axes occupy the innermost positions.
pub