// @generated by thrift-lite.py; do not edit.

#include <array>
#include <string_view>

#include <dwarfs/thrift_lite/detail/protocol_helpers.h>

#include "frozen_types.h"

using namespace std::string_view_literals;
namespace dtl = ::dwarfs::thrift_lite;
namespace dtld = ::dwarfs::thrift_lite::detail;

namespace apache::thrift::frozen::schema {

Field::Field() = default;
Field::Field(Field const&) = default;
Field::Field(Field&&) noexcept = default;
auto Field::operator=(Field const&) -> Field& = default;
auto Field::operator=(Field&&) noexcept -> Field& = default;

auto Field::has_any_fields_for_write(::dtl::writer_options const& opts [[maybe_unused]]) const noexcept -> bool {
  return ::dtld::should_write_regular(opts, layoutId_) ||
         ::dtld::should_write_regular(opts, offset_);
}

Layout::Layout() = default;
Layout::Layout(Layout const&) = default;
Layout::Layout(Layout&&) noexcept = default;
auto Layout::operator=(Layout const&) -> Layout& = default;
auto Layout::operator=(Layout&&) noexcept -> Layout& = default;

auto Layout::has_any_fields_for_write(::dtl::writer_options const& opts [[maybe_unused]]) const noexcept -> bool {
  return ::dtld::should_write_regular(opts, size_) ||
         ::dtld::should_write_regular(opts, bits_) ||
         ::dtld::should_write_regular(opts, fields_) ||
         ::dtld::should_write_regular(opts, typeName_);
}

Schema::Schema() = default;
Schema::Schema(Schema const&) = default;
Schema::Schema(Schema&&) noexcept = default;
auto Schema::operator=(Schema const&) -> Schema& = default;
auto Schema::operator=(Schema&&) noexcept -> Schema& = default;

auto Schema::has_any_fields_for_write(::dtl::writer_options const& opts [[maybe_unused]]) const noexcept -> bool {
  return ::dtld::should_write_regular(opts, fileVersion_) ||
         ::dtld::should_write_regular(opts, relaxTypeChecks_) ||
         ::dtld::should_write_regular(opts, layouts_) ||
         ::dtld::should_write_regular(opts, rootLayout_);
}

} // namespace apache::thrift::frozen::schema

namespace dwarfs::thrift_lite {

} // namespace dwarfs::thrift_lite
