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

#pragma once

#include <fidl/test.someotherlibrary/cpp/common_types.h>
#include <lib/fidl/llcpp/internal/display_error.h>
#include <lib/fidl/llcpp/traits.h>
#include <lib/stdcompat/optional.h>

#include <cinttypes>

namespace test_typealiases {

enum class ObjType : uint32_t {

  kNone = 0u,

  kChannel = 4u,
};

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

namespace fidl {

template <>
struct IsFidlType<::test_typealiases::ObjType> : public std::true_type {};
template <>
struct ContainsHandle<::test_typealiases::ObjType> : public std::false_type {};

}  // namespace fidl
