blob: 39fba4e5a462af9c1e73c27561cf2efb081b092d [file] [log] [blame]
library test.encapsulatedstructs;
using zx;
type Int8Int32 = struct {
a int8;
// padding of 3 bytes.
b int32;
};
type Int16Int8 = struct {
a int16;
b int8;
// padding of 1 byte.
};
type ArrayInt16Int8 = struct {
arr array<Int16Int8, 3>;
// inner padding plus 3 bytes padding at the end.
};
type StructPaddingTestStruct = struct {
trailing Int16Int8;
// padding of 4 bytes.
// after flattening the FourByteAlignedTrailingPaddingStruct into this
// struct for the coding tables, there will be 5 bytes of padding.
inner Int8Int32;
array ArrayInt16Int8;
// after flattening, there should be 3 bytes of padding after the array
// elements.
};
type NonInlineStructTestStruct = resource struct {
element box<Int16Int8>; // 8-byte alignment
h zx.handle;
// 4-byte padding after handle.
};
type TopLevelStruct = resource struct {
a StructPaddingTestStruct;
b NonInlineStructTestStruct;
};