Zig tuples (side requirement... we can fudge this if we need to)
With wasm supporting multiple returns and Zig doing tuples, we can actually return "complex" data without bitcast kludging. It's still not as nice as (named field) structs, but it's much better than the current representation.
Note — this depends on upstream features:
With wasm supporting multiple returns and Zig doing tuples, we can actually return "complex" data without bitcast kludging. It's still not as nice as (named field) structs, but it's much better than the current representation.
tuple { [*]T, usize }
tuple { [*]T, width: usize, height: usize }
tuple { [*]u8, usize, length: u8 }