weirflow 0.1.0

GPU-first dataflow analysis primitives for Vyre and Santh compiler pipelines.
Documentation
//! Shared GPU dispatch ABI helpers for Weir via paths.
//!
//! Production GPU wrappers must reject malformed backend input/output instead of
//! accepting prefixes, silently padding, or ignoring trailing bytes. Packing,
//! validation, and unpacking live in separate modules so each boundary has one
//! responsibility while callers continue using `crate::dispatch_decode::*`.

pub mod pack;
pub mod schema;
pub mod unpack;
pub mod validate;

#[allow(unused_imports)]
pub(crate) use pack::{
    pack_exact_u32_slots_into, pack_repeated_u32, pack_repeated_u32_into, pack_u32,
    pad_dispatch_min_words, try_pack_u32, try_pack_u32_into, try_pad_zero_bytes_to_len,
    try_write_zero_bytes, try_write_zero_words,
};
#[cfg(any(test, feature = "legacy-infallible"))]
#[allow(unused_imports)]
pub(crate) use pack::{pack_u32_into, write_zero_words};
#[allow(unused_imports)]
pub(crate) use schema::{
    byte_len_for_u32_words, DispatchDecodeDirection, DispatchU32Schema, U32_BITS_PER_WORD,
    U32_BYTES,
};
#[allow(unused_imports)]
pub(crate) use unpack::{
    only_output, require_output_count, unpack_exact_u32, unpack_exact_u32_into,
    unpack_exact_u32_scalar, unpack_only_exact_u32_into, unpack_u32_from,
};
#[allow(unused_imports)]
pub(crate) use validate::{
    bitset_word_capacity, bitset_words, require_bitset_tail_clear, require_bitset_words,
    require_csr_offsets_targets, require_csr_shape, require_positive_iterations, u32_to_usize,
};