// Copyright 2016 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef MOJO_PUBLIC_CPP_BINDINGS_TESTS_STRUCT_WITH_TRAITS_IMPL_H_ #define MOJO_PUBLIC_CPP_BINDINGS_TESTS_STRUCT_WITH_TRAITS_IMPL_H_ #include <stdint.h> #include <map> #include <set> #include <string> #include <string_view> #include <vector> #include "mojo/public/cpp/system/handle.h" namespace mojo { namespace test { struct NestedStructWithTraitsImpl { … }; enum class EnumWithTraitsImpl { … }; // A type which knows how to look like a mojo::test::StructWithTraits mojom type // by way of mojo::StructTraits. class StructWithTraitsImpl { … }; // A type which corresponds nominally to the // mojo::test::StructWithUnreachableTraits mojom type. Used to test that said // type is never serialized, i.e. objects of this type are simply copied into // a message as-is when written to an intra-process interface. struct StructWithUnreachableTraitsImpl { … }; // A type which knows how to look like a mojo::test::TrivialStructWithTraits // mojom type by way of mojo::StructTraits. struct TrivialStructWithTraitsImpl { … }; // A type which knows how to look like a mojo::test::MoveOnlyStructWithTraits // mojom type by way of mojo::StructTraits. class MoveOnlyStructWithTraitsImpl { … }; class UnionWithTraitsBase { … }; class UnionWithTraitsInt32 : public UnionWithTraitsBase { … }; class UnionWithTraitsStruct : public UnionWithTraitsBase { … }; class StructForceSerializeImpl { … }; class StructNestedForceSerializeImpl { … }; } // namespace test } // namespace mojo #endif // MOJO_PUBLIC_CPP_BINDINGS_TESTS_STRUCT_WITH_TRAITS_IMPL_H_