// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

module mojo.test.data_view;

enum TestEnum {
  VALUE_0,
  VALUE_1
};

interface TestInterface {
  [Sync]
  Echo(int32 value) => (int32 out_value);
};

struct NestedStruct {
  int32 f_int32;
};

[Native]
struct TestNativeStruct;

union TestUnion {
  bool f_bool;
  int32 f_int32;
};

struct TestStruct {
  string f_string;
  NestedStruct? f_struct;
  TestNativeStruct? f_native_struct;
  array<bool> f_bool_array;
  array<int32> f_int32_array;
  array<TestEnum> f_enum_array;
  array<TestInterface> f_interface_array;
  array<array<int32>> f_nested_array;
  array<NestedStruct> f_struct_array;
  array<TestUnion> f_union_array;
  map<string, int32> f_map;
};