blob: cd74154c1707c70c615c06a658962a5ec287a523 [file] [log] [blame]
// Copyright 2017 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.
#ifndef SERVICES_RESOURCE_COORDINATOR_PUBLIC_CPP_COORDINATION_UNIT_STRUCT_TRAITS_H_
#define SERVICES_RESOURCE_COORDINATOR_PUBLIC_CPP_COORDINATION_UNIT_STRUCT_TRAITS_H_
#include "services/resource_coordinator/public/cpp/coordination_unit_types.h"
#include "services/resource_coordinator/public/interfaces/coordination_unit.mojom.h"
#include "services/resource_coordinator/public/interfaces/interfaces_export.h"
namespace mojo {
template <>
struct RESOURCE_COORDINATOR_PUBLIC_INTERFACES_EXPORT
EnumTraits<resource_coordinator::mojom::CoordinationUnitType,
resource_coordinator::CoordinationUnitType> {
static resource_coordinator::mojom::CoordinationUnitType ToMojom(
resource_coordinator::CoordinationUnitType type);
static bool FromMojom(resource_coordinator::mojom::CoordinationUnitType input,
resource_coordinator::CoordinationUnitType* out);
};
template <>
struct RESOURCE_COORDINATOR_PUBLIC_INTERFACES_EXPORT
StructTraits<resource_coordinator::mojom::CoordinationUnitIDDataView,
resource_coordinator::CoordinationUnitID> {
static uint64_t id(const resource_coordinator::CoordinationUnitID& id) {
return id.id;
}
static resource_coordinator::CoordinationUnitType type(
const resource_coordinator::CoordinationUnitID& id) {
return id.type;
}
static bool Read(
resource_coordinator::mojom::CoordinationUnitIDDataView input,
resource_coordinator::CoordinationUnitID* out);
};
} // namespace mojo
#endif // SERVICES_RESOURCE_COORDINATOR_PUBLIC_CPP_COORDINATION_UNIT_STRUCT_TRAITS_H_