// WARNING: This file is machine generated by fidlgen.

#pragma once

#include <lib/fidl/llcpp/internal/display_error.h>
#include <lib/fidl/llcpp/traits.h>
#include <lib/stdcompat/optional.h>

#include <cinttypes>

namespace test_protocols {

enum class ErrorEnum : uint32_t {

  kErrFoo = 1u,

  kErrBar = 2u,
};

}  // namespace test_protocols
template <>
struct fidl::internal::DisplayError<::test_protocols::ErrorEnum> {
  static size_t Format(const ::test_protocols::ErrorEnum& value,
                       char* destination, size_t capacity);
};

namespace fidl {

template <>
struct IsFidlType<::test_protocols::ErrorEnum> : public std::true_type {};
template <>
struct ContainsHandle<::test_protocols::ErrorEnum> : public std::false_type {};

}  // namespace fidl
