Expand description
This library provides two convenient derive macros for interpreting arrays of field elements as structs representing an AIR.
Deriving Columns on a struct Struct<T> implements the following
conversion traits between Struct<T> and arrays [T; N] where N is the
number of fields in the struct: Borrow, BorrowMut, and From.
Additionally, the traits Index, IndexMut, and Default are
implemented for Struct<T>.
Deriving DerefColumns for a struct generic over T implements Deref
and DerefMut with target [T; N] where N is the number of fields in
the struct.
These implementations employ unsafe code and place a burden on the user to
ensure their safe usage. Please see the respective macro implementations to
understand the conditions that should be upheld by any struct deriving
Columns or DerefColumns. In short, the struct must be #[repr(C)]
and all fields must be one of T, [T; M], or a type with the same layout
as [T; M].