Write an arithmetic field of an existing element.
281 {
282 if constexpr (std::same_as<T, int64_t> || std::same_as<T, double>) {
284 if (field_index &&
m_layout.
fields()[*field_index].type ==
typeid(detail::CompositeDynamic)) {
285 if constexpr (std::same_as<T, int64_t>)
287 else
289 }
290 }
292 if (!field_index)
293 return false;
294
296 auto&
rows = std::get<std::vector<uint8_t>>(
m_rows);
300 return true;
301 }
bool set_integer(size_t index, std::string_view field_name, int64_t value)
void set_present(size_t index, size_t field_index, bool present) noexcept
std::optional< size_t > validate_write(size_t index, std::string_view field_name, std::type_index type) const
bool set_real(size_t index, std::string_view field_name, double value)
size_t stride_bytes() const noexcept
Bytes per packed element after finalization.
const std::vector< CompositeField > & fields() const noexcept
Declared fields in element order, with finalized byte offsets.
std::optional< size_t > find_field(std::string_view name) const noexcept
Find a field index by name, or std::nullopt if absent.