// Copyright 2018 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 CHROME_CHROME_CLEANER_INTERFACES_TYPEMAPS_WINDOWS_HANDLE_MOJOM_TRAITS_H_
#define CHROME_CHROME_CLEANER_INTERFACES_TYPEMAPS_WINDOWS_HANDLE_MOJOM_TRAITS_H_

#include "chrome/chrome_cleaner/interfaces/windows_handle.mojom.h"
#include "mojo/public/cpp/bindings/union_traits.h"

namespace mojo {

template <>
struct EnumTraits<chrome_cleaner::mojom::PredefinedHandle, HANDLE> {
  static chrome_cleaner::mojom::PredefinedHandle ToMojom(HANDLE handle);
  static bool FromMojom(chrome_cleaner::mojom::PredefinedHandle input,
                        HANDLE* result);
};

template <>
struct UnionTraits<chrome_cleaner::mojom::WindowsHandleDataView, HANDLE> {
  static mojo::ScopedHandle raw_handle(HANDLE handle);
  static chrome_cleaner::mojom::PredefinedHandle special_handle(HANDLE handle);
  static chrome_cleaner::mojom::WindowsHandleDataView::Tag GetTag(
      HANDLE handle);
  static bool Read(
      chrome_cleaner::mojom::WindowsHandleDataView windows_handle_view,
      HANDLE* out);
};

}  // namespace mojo

#endif  // CHROME_CHROME_CLEANER_INTERFACES_TYPEMAPS_WINDOWS_HANDLE_MOJOM_TRAITS_H_
