50 template <
class F,
class N,
class M>
51 requires std::constructible_from<arrow_schema_private_data::FormatType, F>
52 && std::constructible_from<arrow_schema_private_data::NameType, N>
53 && std::constructible_from<arrow_schema_private_data::MetadataType, M>
56 [[nodiscard]]
const char*
format_ptr() const noexcept;
58 [[nodiscard]] const
char*
name_ptr() const noexcept;
73 if constexpr (std::same_as<std::remove_cvref_t<T>, std::string>)
75 return std::forward<T>(t);
77 else if constexpr (std::same_as<std::nullopt_t, T>)
81 else if constexpr (std::is_pointer_v<T>)
89 return std::string(t);
92 else if constexpr (std::ranges::range<T>)
94 return std::string(t.cbegin(), t.cend());
114 template <
class F,
class N,
class M>
115 requires std::constructible_from<arrow_schema_private_data::FormatType, F>
116 && std::constructible_from<arrow_schema_private_data::NameType, N>
117 && std::constructible_from<arrow_schema_private_data::MetadataType, M>
129 return m_format.data();
139 if (m_name.has_value())
141 return m_name->data();
153 if (m_metadata.has_value())
155 return m_metadata->data();
const char * format_ptr() const noexcept
arrow_schema_private_data & operator=(const arrow_schema_private_data &)=delete
arrow_schema_private_data & operator=(arrow_schema_private_data &&)=delete
MetadataType & metadata() noexcept
arrow_schema_private_data(const arrow_schema_private_data &)=delete
arrow_schema_private_data()=delete
~arrow_schema_private_data()=default
arrow_schema_private_data(arrow_schema_private_data &&)=delete
const char * name_ptr() const noexcept
NameType & name() noexcept
const char * metadata_ptr() const noexcept
FormatType & format() noexcept
std::optional< std::string > NameType
std::optional< std::string > MetadataType
constexpr children_ownership(std::size_t size=0)
constexpr std::size_t children_size() const noexcept
#define SPARROW_ASSERT_TRUE(expr__)
constexpr bool is_type_instance_of_v
true if T is a concrete type template instanciation of U which is a type template.
void unreachable()
Invokes undefined behavior.
constexpr std::optional< std::string > to_optional_string(T &&t)
Workaround to replace static_assert(false) in template code.