include protocol PTestDataStructuresSub; using struct mozilla::null_t from "ipc/IPCMessageUtils.h"; using nsIntRegion from "nsRegion.h"; namespace mozilla { namespace _foo { union IntDouble { int; double; }; struct SIntDouble { int i; double d; }; union IntDoubleArrays { int; int[]; double[]; }; struct SIntDoubleArrays { int i; int[] ai; double[] ad; }; struct ActorWrapper { PTestDataStructuresSub actor; }; union Actors { int; int[]; PTestDataStructuresSub[]; }; struct SActors { int i; int[] ai; PTestDataStructuresSub[] ap; }; union Unions { int; int[]; PTestDataStructuresSub[]; Actors[]; }; struct Structs { int i; int[] ai; PTestDataStructuresSub[] ap; SActors[] aa; }; union WithStructs { int; int[]; PTestDataStructuresSub[]; SActors[]; Structs[]; }; struct WithUnions { int i; int[] ai; PTestDataStructuresSub[] ap; Actors[] aa; Unions[] au; }; struct CommonAttrs { bool dummy; }; struct FooAttrs { int dummy; }; struct BarAttrs { float dummy; }; union SpecificAttrs { FooAttrs; BarAttrs; }; struct Attrs { CommonAttrs common; SpecificAttrs specific; }; struct SetAttrs { PTestDataStructuresSub x; Attrs attrs; }; union Op { null_t; SetAttrs; }; struct ShmemStruct { int i; Shmem mem; }; union ShmemUnion { int; Shmem; }; struct Empty { }; } // namespace _foo } // namespace mozilla