/*
* Copyright (c) Meta Platforms, Inc. and affiliates.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree.
*/
typedef map<string, string> hstypedef
typedef map<string, string> hsnewtypeann (hs.newtype)
struct HsStruct {
1: i32 strictann (hs.strict);
2: i32 lazyann (hs.lazy);
3: i32 inherit;
}
struct HsStrictAnn {
1: i32 strictann (hs.strict);
2: i32 lazyann (hs.lazy);
3: i32 inherit;
} (hs.strict)
struct HsLazyAnn {
1: i32 strictann (hs.strict);
2: i32 lazyann (hs.lazy);
3: i32 inherit;
} (hs.lazy)
struct HsPrefixAnn {
1: i32 strictann (hs.strict);
2: i32 lazyann (hs.lazy);
3: i32 inherit;
} (hs.prefix = "structprefix")
union HsUnion {
1: i32 left;
2: i32 right;
}
union HsUnionNonEmptyAnn {
1: i32 left;
2: i32 right;
} (hs.nonempty)
enum HsEnum {
ONE = 1,
TWO = 2,
THREE = 3,
}
enum HsEnumEmpty {
}
enum HsEnumNoUnknownAnn {
ONE = 1,
TWO = 2,
THREE = 3,
} (hs.nounknown)
enum HsEnumEmptyNoUnknownAnn {
} (hs.nounknown)
enum HsEnumPseudoenumAnn {
ONE = 1,
TWO = 2,
THREE = 3,
} (hs.pseudoenum)
enum HsEnumDuplicatedPseudoenumAnn {
ONE = 1,
TWO = 2,
THREE = 3,
} (hs.pseudoenum)
enum HsEnumEmptyPseudoenumAnn {
} (hs.pseudoenum)
enum HsEnumPseudoenumThriftAnn {
ONE = 1,
TWO = 2,
THREE = 3,
} (hs.pseudoenum = "thriftenum")
enum HsEnumEmptyPseudoenumThriftAnn {
} (hs.pseudoenum = "thriftenum")
struct HsStructOfComplexTypes {
1: HsStruct a_struct;
2: HsUnion a_union;
3: HsEnum an_enum;
4: HsEnumPseudoenumAnn a_pseudoenum;
5: HsEnumPseudoenumThriftAnn a_thrift_pseudoenum;
}