#ifndef MOJO_PUBLIC_CPP_BINDINGS_LIB_SERIALIZATION_H_
#define MOJO_PUBLIC_CPP_BINDINGS_LIB_SERIALIZATION_H_
#include <string.h>
#include <type_traits>
#include "base/numerics/safe_math.h"
#include "mojo/public/cpp/bindings/array_traits_span.h"
#include "mojo/public/cpp/bindings/array_traits_stl.h"
#include "mojo/public/cpp/bindings/lib/array_serialization.h"
#include "mojo/public/cpp/bindings/lib/bindings_internal.h"
#include "mojo/public/cpp/bindings/lib/buffer.h"
#include "mojo/public/cpp/bindings/lib/handle_serialization.h"
#include "mojo/public/cpp/bindings/lib/map_serialization.h"
#include "mojo/public/cpp/bindings/lib/message_fragment.h"
#include "mojo/public/cpp/bindings/lib/string_serialization.h"
#include "mojo/public/cpp/bindings/lib/template_util.h"
#include "mojo/public/cpp/bindings/map_traits_flat_map.h"
#include "mojo/public/cpp/bindings/map_traits_stl.h"
#include "mojo/public/cpp/bindings/message.h"
#include "mojo/public/cpp/bindings/string_traits_stl.h"
#include "mojo/public/cpp/bindings/string_traits_string_piece.h"
namespace mojo {
namespace internal {
template <typename MojomType, typename EnableType = void>
struct MojomSerializationImplTraits;
MojomSerializationImplTraits<MojomType, typename std::enable_if<BelongsTo<MojomType, MojomTypeCategory::kStruct>::value>::type>;
MojomSerializationImplTraits<MojomType, typename std::enable_if<BelongsTo<MojomType, MojomTypeCategory::kUnion>::value>::type>;
template <typename MojomType, typename UserType>
mojo::Message SerializeAsMessageImpl(UserType* input) { … }
template <typename MojomType, typename DataArrayType, typename UserType>
DataArrayType SerializeImpl(UserType* input) { … }
template <typename MojomType, typename UserType>
bool DeserializeImpl(Message& message,
const void* data,
size_t data_num_bytes,
UserType* output,
bool (*validate_func)(const void*, ValidationContext*)) { … }
}
}
#endif