blob: 73c62fb4e46a8b6bddacee4223d27e911f795e0a [file] [log] [blame]
library fidl.test.unionsandwich;
// These are various unions and structs-containing-unions of different sizes and alignments,
// explicitly designed as test cases for the wire format migration where the FIDL union type is
// changing from a static union on-the-wire (the "old" format) to an extensible union on-the-wire
// (the "v1" format).
//
// See typeshape_tests.cc for furher details.
union UnionSize8Alignment4 {
1: uint32 variant;
};
struct SandwichUnionSize8Alignment4 {
uint32 before;
UnionSize8Alignment4 union;
uint32 after;
};
union UnionSize12Alignment4 {
1: array<uint8>:6 variant;
};
struct SandwichUnionSize12Alignment4 {
uint32 before;
UnionSize12Alignment4 union;
int32 after;
};
struct StructSize16Alignment8 {
uint64 f1;
uint64 f2;
};
union UnionSize24Alignment8 {
1: StructSize16Alignment8 variant;
};
struct SandwichUnionSize24Alignment8 {
uint32 before;
UnionSize24Alignment8 union;
uint32 after;
};
union UnionSize36Alignment4 {
1: array<uint8>:32 variant;
};
struct SandwichUnionSize36Alignment4 {
uint32 before;
UnionSize36Alignment4 union;
uint32 after;
};