// Copyright 2019 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Generated by generate.py.
library fidl.test.dangerous.struct.types.camel;
using membertype = uint32;
struct Abstract { membertype member = 1; };
struct Alignas { membertype member = 1; };
struct Alignof { membertype member = 1; };
struct And { membertype member = 1; };
struct AndEq { membertype member = 1; };
struct As { membertype member = 1; };
struct Asm { membertype member = 1; };
struct Assert { membertype member = 1; };
struct Async { membertype member = 1; };
struct AtomicCancel { membertype member = 1; };
struct AtomicCommit { membertype member = 1; };
struct AtomicNoexcept { membertype member = 1; };
struct Auto { membertype member = 1; };
struct Await { membertype member = 1; };
struct Become { membertype member = 1; };
struct Bitand { membertype member = 1; };
struct Bitor { membertype member = 1; };
struct Bool { membertype member = 1; };
struct Box { membertype member = 1; };
struct Break { membertype member = 1; };
struct Byte { membertype member = 1; };
struct Case { membertype member = 1; };
struct Catch { membertype member = 1; };
struct Chan { membertype member = 1; };
struct Char { membertype member = 1; };
struct Char16T { membertype member = 1; };
struct Char32T { membertype member = 1; };
struct Class { membertype member = 1; };
struct CoAwait { membertype member = 1; };
struct CoReturn { membertype member = 1; };
struct CoYield { membertype member = 1; };
struct CodingTraits { membertype member = 1; };
struct Compl { membertype member = 1; };
struct Concept { membertype member = 1; };
struct Const { membertype member = 1; };
struct ConstCast { membertype member = 1; };
struct Constexpr { membertype member = 1; };
struct Continue { membertype member = 1; };
struct Controller { membertype member = 1; };
struct Covariant { membertype member = 1; };
struct Crate { membertype member = 1; };
struct Decltype { membertype member = 1; };
struct Decoder { membertype member = 1; };
struct Default { membertype member = 1; };
struct Defer { membertype member = 1; };
struct Deferred { membertype member = 1; };
struct Delete { membertype member = 1; };
struct Do { membertype member = 1; };
struct Double { membertype member = 1; };
struct Dynamic { membertype member = 1; };
struct DynamicCast { membertype member = 1; };
struct Else { membertype member = 1; };
struct Encoder { membertype member = 1; };
struct EnsureValuesInstantiated { membertype member = 1; };
struct Enum { membertype member = 1; };
struct Err { membertype member = 1; };
struct Explicit { membertype member = 1; };
struct Export { membertype member = 1; };
struct Extends { membertype member = 1; };
struct Extern { membertype member = 1; };
struct External { membertype member = 1; };
struct Factory { membertype member = 1; };
struct Fallthrough { membertype member = 1; };
struct False { membertype member = 1; };
struct Fidl { membertype member = 1; };
struct FidlType { membertype member = 1; };
struct Final { membertype member = 1; };
struct Finally { membertype member = 1; };
struct Float { membertype member = 1; };
struct Fn { membertype member = 1; };
struct For { membertype member = 1; };
struct Friend { membertype member = 1; };
struct Func { membertype member = 1; };
struct Future { membertype member = 1; };
struct Futures { membertype member = 1; };
struct Get { membertype member = 1; };
struct Go { membertype member = 1; };
struct Goto { membertype member = 1; };
struct HasInvalidTag { membertype member = 1; };
struct HashCode { membertype member = 1; };
struct If { membertype member = 1; };
struct Impl { membertype member = 1; };
struct Implements { membertype member = 1; };
struct Import { membertype member = 1; };
struct In { membertype member = 1; };
struct Index { membertype member = 1; };
struct Inline { membertype member = 1; };
struct Int { membertype member = 1; };
struct Int16 { membertype member = 1; };
struct Int32 { membertype member = 1; };
struct Int64 { membertype member = 1; };
struct Int8 { membertype member = 1; };
struct Interface { membertype member = 1; };
struct Is { membertype member = 1; };
struct Let { membertype member = 1; };
struct Lhs { membertype member = 1; };
struct Library { membertype member = 1; };
struct List { membertype member = 1; };
struct Long { membertype member = 1; };
struct Loop { membertype member = 1; };
struct Macro { membertype member = 1; };
struct Map { membertype member = 1; };
struct Match { membertype member = 1; };
struct Mixin { membertype member = 1; };
struct Mod { membertype member = 1; };
struct Module { membertype member = 1; };
struct Move { membertype member = 1; };
struct Mut { membertype member = 1; };
struct Mutable { membertype member = 1; };
struct Namespace { membertype member = 1; };
struct Never { membertype member = 1; };
struct New { membertype member = 1; };
struct NoSuchMethod { membertype member = 1; };
struct Noexcept { membertype member = 1; };
struct None { membertype member = 1; };
struct Not { membertype member = 1; };
struct NotEq { membertype member = 1; };
struct Null { membertype member = 1; };
struct Nullptr { membertype member = 1; };
struct Num { membertype member = 1; };
struct Object { membertype member = 1; };
struct Offset { membertype member = 1; };
struct Offsetof { membertype member = 1; };
struct Ok { membertype member = 1; };
struct OnOpen { membertype member = 1; };
struct Operator { membertype member = 1; };
struct Option { membertype member = 1; };
struct Or { membertype member = 1; };
struct OrEq { membertype member = 1; };
struct Override { membertype member = 1; };
struct Package { membertype member = 1; };
struct Part { membertype member = 1; };
struct Priv { membertype member = 1; };
struct Private { membertype member = 1; };
struct Proc { membertype member = 1; };
struct Protected { membertype member = 1; };
struct Proxy { membertype member = 1; };
struct Pub { membertype member = 1; };
struct Public { membertype member = 1; };
struct Pure { membertype member = 1; };
struct Range { membertype member = 1; };
struct Ref { membertype member = 1; };
struct Register { membertype member = 1; };
struct ReinterpretCast { membertype member = 1; };
struct Requires { membertype member = 1; };
struct Result { membertype member = 1; };
struct Rethrow { membertype member = 1; };
struct Return { membertype member = 1; };
struct Rhs { membertype member = 1; };
struct Rune { membertype member = 1; };
struct RuntimeType { membertype member = 1; };
struct Select { membertype member = 1; };
struct Self { membertype member = 1; };
struct Send { membertype member = 1; };
struct Set { membertype member = 1; };
struct SetController { membertype member = 1; };
struct Short { membertype member = 1; };
struct Signed { membertype member = 1; };
struct Sizeof { membertype member = 1; };
struct Some { membertype member = 1; };
struct Static { membertype member = 1; };
struct StaticAssert { membertype member = 1; };
struct StaticCast { membertype member = 1; };
struct Stream { membertype member = 1; };
struct String { membertype member = 1; };
struct Struct { membertype member = 1; };
struct Stub { membertype member = 1; };
struct Super { membertype member = 1; };
struct Switch { membertype member = 1; };
struct Synchronized { membertype member = 1; };
struct Template { membertype member = 1; };
struct This { membertype member = 1; };
struct ThreadLocal { membertype member = 1; };
struct Throw { membertype member = 1; };
struct ToString { membertype member = 1; };
struct Trait { membertype member = 1; };
struct True { membertype member = 1; };
struct Try { membertype member = 1; };
struct Type { membertype member = 1; };
struct Typedef { membertype member = 1; };
struct Typeid { membertype member = 1; };
struct Typename { membertype member = 1; };
struct Typeof { membertype member = 1; };
struct Uint16 { membertype member = 1; };
struct Uint32 { membertype member = 1; };
struct Uint64 { membertype member = 1; };
struct Uint8 { membertype member = 1; };
struct Union { membertype member = 1; };
struct Unsafe { membertype member = 1; };
struct Unsigned { membertype member = 1; };
struct Unsized { membertype member = 1; };
struct Use { membertype member = 1; };
struct Using { membertype member = 1; };
struct Value { membertype member = 1; };
struct ValueOf { membertype member = 1; };
struct ValueUnion { membertype member = 1; };
struct ValuesMap { membertype member = 1; };
struct Var { membertype member = 1; };
struct Vec { membertype member = 1; };
struct Virtual { membertype member = 1; };
struct Void { membertype member = 1; };
struct Volatile { membertype member = 1; };
struct WcharT { membertype member = 1; };
struct Where { membertype member = 1; };
struct Which { membertype member = 1; };
struct While { membertype member = 1; };
struct With { membertype member = 1; };
struct Xor { membertype member = 1; };
struct XorEq { membertype member = 1; };
struct Xunion { membertype member = 1; };
struct Yield { membertype member = 1; };
struct Zx { membertype member = 1; };
struct DangerousMembers {
  Abstract f0;
  Alignas f1;
  Alignof f2;
  And f3;
  AndEq f4;
  As f5;
  Asm f6;
  Assert f7;
  Async f8;
  AtomicCancel f9;
  AtomicCommit f10;
  AtomicNoexcept f11;
  Auto f12;
  Await f13;
  Become f14;
  Bitand f15;
  Bitor f16;
  Bool f17;
  Box f18;
  Break f19;
  Byte f20;
  Case f21;
  Catch f22;
  Chan f23;
  Char f24;
  Char16T f25;
  Char32T f26;
  Class f27;
  CoAwait f28;
  CoReturn f29;
  CoYield f30;
  CodingTraits f31;
  Compl f32;
  Concept f33;
  Const f34;
  ConstCast f35;
  Constexpr f36;
  Continue f37;
  Controller f38;
  Covariant f39;
  Crate f40;
  Decltype f41;
  Decoder f42;
  Default f43;
  Defer f44;
  Deferred f45;
  Delete f46;
  Do f47;
  Double f48;
  Dynamic f49;
  DynamicCast f50;
  Else f51;
  Encoder f52;
  EnsureValuesInstantiated f53;
  Enum f54;
  Err f55;
  Explicit f56;
  Export f57;
  Extends f58;
  Extern f59;
  External f60;
  Factory f61;
  Fallthrough f62;
  False f63;
  Fidl f64;
  FidlType f65;
  Final f66;
  Finally f67;
  Float f68;
  Fn f69;
  For f70;
  Friend f71;
  Func f72;
  Future f73;
  Futures f74;
  Get f75;
  Go f76;
  Goto f77;
  HasInvalidTag f78;
  HashCode f79;
  If f80;
  Impl f81;
  Implements f82;
  Import f83;
  In f84;
  Index f85;
  Inline f86;
  Int f87;
  Int16 f88;
  Int32 f89;
  Int64 f90;
  Int8 f91;
  Interface f92;
  Is f93;
  Let f94;
  Lhs f95;
  Library f96;
  List f97;
  Long f98;
  Loop f99;
  Macro f100;
  Map f101;
  Match f102;
  Mixin f103;
  Mod f104;
  Module f105;
  Move f106;
  Mut f107;
  Mutable f108;
  Namespace f109;
  Never f110;
  New f111;
  NoSuchMethod f112;
  Noexcept f113;
  None f114;
  Not f115;
  NotEq f116;
  Null f117;
  Nullptr f118;
  Num f119;
  Object f120;
  Offset f121;
  Offsetof f122;
  Ok f123;
  OnOpen f124;
  Operator f125;
  Option f126;
  Or f127;
  OrEq f128;
  Override f129;
  Package f130;
  Part f131;
  Priv f132;
  Private f133;
  Proc f134;
  Protected f135;
  Proxy f136;
  Pub f137;
  Public f138;
  Pure f139;
  Range f140;
  Ref f141;
  Register f142;
  ReinterpretCast f143;
  Requires f144;
  Result f145;
  Rethrow f146;
  Return f147;
  Rhs f148;
  Rune f149;
  RuntimeType f150;
  Select f151;
  Self f152;
  Send f153;
  Set f154;
  SetController f155;
  Short f156;
  Signed f157;
  Sizeof f158;
  Some f159;
  Static f160;
  StaticAssert f161;
  StaticCast f162;
  Stream f163;
  String f164;
  Struct f165;
  Stub f166;
  Super f167;
  Switch f168;
  Synchronized f169;
  Template f170;
  This f171;
  ThreadLocal f172;
  Throw f173;
  ToString f174;
  Trait f175;
  True f176;
  Try f177;
  Type f178;
  Typedef f179;
  Typeid f180;
  Typename f181;
  Typeof f182;
  Uint16 f183;
  Uint32 f184;
  Uint64 f185;
  Uint8 f186;
  Union f187;
  Unsafe f188;
  Unsigned f189;
  Unsized f190;
  Use f191;
  Using f192;
  Value f193;
  ValueOf f194;
  ValueUnion f195;
  ValuesMap f196;
  Var f197;
  Vec f198;
  Virtual f199;
  Void f200;
  Volatile f201;
  WcharT f202;
  Where f203;
  Which f204;
  While f205;
  With f206;
  Xor f207;
  XorEq f208;
  Xunion f209;
  Yield f210;
  Zx f211;
};
