41 static constexpr int32_t kInvalidFieldId = -1;
53 SchemaField(int32_t field_id, std::string_view name, std::shared_ptr<Type> type,
54 bool optional, std::string_view doc = {},
55 std::shared_ptr<const Literal> initial_default =
nullptr,
56 std::shared_ptr<const Literal> write_default =
nullptr);
59 static SchemaField MakeOptional(int32_t field_id, std::string_view name,
60 std::shared_ptr<Type> type, std::string_view doc = {});
62 static SchemaField MakeRequired(int32_t field_id, std::string_view name,
63 std::shared_ptr<Type> type, std::string_view doc = {});
66 [[nodiscard]] int32_t field_id()
const;
69 [[nodiscard]] std::string_view name()
const;
72 [[nodiscard]]
const std::shared_ptr<Type>& type()
const;
75 [[nodiscard]]
bool optional()
const;
78 std::string_view doc()
const;
82 const std::shared_ptr<const Literal>& initial_default()
const;
86 const std::shared_ptr<const Literal>& write_default()
const;
88 [[nodiscard]] std::string ToString()
const override;
90 Status Validate()
const;
93 return lhs.Equals(rhs);
98 copy.optional_ =
false;
104 copy.optional_ =
true;
110 [[nodiscard]]
bool Equals(
const SchemaField& other)
const;
114 std::shared_ptr<Type> type_;
118 std::shared_ptr<const Literal> initial_default_;
119 std::shared_ptr<const Literal> write_default_;