| library test.fidl.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; |
| }; |