blob: c1e21f2f6534649fd33648089aba5960dc5d5555 [file] [log] [blame]
// Copyright 2018 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.
library test.peridot.lib.fidl.jsonxdr;
struct RequiredData {
string string;
bool bool;
int8 int8;
int16 int16;
int32 int32;
int64 int64;
uint8 uint8;
uint16 uint16;
uint32 uint32;
uint64 uint64;
float32 float32;
float64 float64;
Struct struct;
Enum enum;
Union union;
};
struct OptionalData {
string? string;
Struct? struct;
Union? union;
};
struct RequiredRepeatedRequiredData {
vector<string> string;
vector<bool> bool;
vector<int8> int8;
vector<int16> int16;
vector<int32> int32;
vector<int64> int64;
vector<uint8> uint8;
vector<uint16> uint16;
vector<uint32> uint32;
vector<uint64> uint64;
vector<float32> float32;
vector<float64> float64;
vector<Struct> struct;
vector<Enum> enum;
vector<Union> union;
};
struct RequiredRepeatedOptionalData {
vector<string?> string;
vector<Struct?> struct;
vector<Union?> union;
};
// NOTE(mesch): According to jeffbrown, optional vector typed fields are going
// away.
struct OptionalRepeatedRequiredData {
vector<string>? string;
vector<bool>? bool;
vector<int8>? int8;
vector<int16>? int16;
vector<int32>? int32;
vector<int64>? int64;
vector<uint8>? uint8;
vector<uint16>? uint16;
vector<uint32>? uint32;
vector<uint64>? uint64;
vector<float32>? float32;
vector<float64>? float64;
vector<Struct>? struct;
vector<Enum>? enum;
vector<Union>? union;
};
struct OptionalRepeatedOptionalData {
vector<string?>? string;
vector<Struct?>? struct;
vector<Union?>? union;
};
struct ArrayData {
array<string>:10 string;
array<bool>:10 bool;
array<int8>:10 int8;
array<int16>:10 int16;
array<int32>:10 int32;
array<int64>:10 int64;
array<uint8>:10 uint8;
array<uint16>:10 uint16;
array<uint32>:10 uint32;
array<uint64>:10 uint64;
array<float32>:10 float32;
array<float64>:10 float64;
array<Struct>:10 struct;
array<Enum>:10 enum;
array<Union>:10 union;
};
// The purpose of this struct is coverage for struct valued fields above. The
// field exists only so we have something to be checked to be there. Other types
// of fields of structs are covered above, not here.
struct Struct {
int32 item;
};
enum Enum {
ZERO = 0;
ONE = 1;
TWO = 2;
};
// NOTE(mesch): Can't use struct, FIDL-130.
union Union {
int32 int32;
string string;
};
// Used to test that FieldWithDefault() and ValueWithDefault() fill in default
// values as expected for the types in this table.
table FillWithDefaultValues {
1: string string;
2: bool bool;
3: int8 int8;
4: int16 int16;
5: int32 int32;
6: int64 int64;
7: uint8 uint8;
8: uint16 uint16;
9: uint32 uint32;
10: uint64 uint64;
11: float32 float32;
12: float64 float64;
13: Enum enum;
14: vector<string> vector_of_strings;
};