Note for now much of the docs is LLM written. This was done to save time and focus on code development. The docs have been LOOSLEY reviewed. However, the code itself has been either fully written by hand or fully reviewed. Therefore, the docs should at the moment be seen as a loose resource rather than authoratiative (and this is on top of the general ability for docs to drift)
159 lines
4.7 KiB
Groff
159 lines
4.7 KiB
Groff
.TH "src/include/serif/utils/serialize/record.hpp" 3 "Version v0.0.1a" "SERiF" \" -*- nroff -*-
|
|
.ad l
|
|
.nh
|
|
.SH NAME
|
|
src/include/serif/utils/serialize/record.hpp
|
|
.SH SYNOPSIS
|
|
.br
|
|
.PP
|
|
\fR#include <algorithm>\fP
|
|
.br
|
|
\fR#include <array>\fP
|
|
.br
|
|
\fR#include <bit>\fP
|
|
.br
|
|
\fR#include <concepts>\fP
|
|
.br
|
|
\fR#include <cstdint>\fP
|
|
.br
|
|
\fR#include <exception>\fP
|
|
.br
|
|
\fR#include <expected>\fP
|
|
.br
|
|
\fR#include <functional>\fP
|
|
.br
|
|
\fR#include <limits>\fP
|
|
.br
|
|
\fR#include <map>\fP
|
|
.br
|
|
\fR#include <optional>\fP
|
|
.br
|
|
\fR#include <string>\fP
|
|
.br
|
|
\fR#include <string_view>\fP
|
|
.br
|
|
\fR#include <tuple>\fP
|
|
.br
|
|
\fR#include <type_traits>\fP
|
|
.br
|
|
\fR#include <utility>\fP
|
|
.br
|
|
\fR#include <variant>\fP
|
|
.br
|
|
\fR#include <vector>\fP
|
|
.br
|
|
|
|
.SS "Classes"
|
|
|
|
.in +1c
|
|
.ti -1c
|
|
.RI "struct \fBserif::utils::serialize::Error\fP"
|
|
.br
|
|
.RI "Identify the component or field that could not be saved or reconstructed\&. "
|
|
.ti -1c
|
|
.RI "struct \fBserif::utils::serialize::Node\fP"
|
|
.br
|
|
.RI "A named component owns its fields, stable schema identifier, and schema version\&. "
|
|
.ti -1c
|
|
.RI "struct \fBserif::utils::serialize::Field\fP"
|
|
.br
|
|
.RI "Associate a field name with an already encoded child\&. "
|
|
.ti -1c
|
|
.RI "struct \fBserif::utils::serialize::Member< T >\fP"
|
|
.br
|
|
.RI "Name a typed field expected by a component's loader\&. "
|
|
.ti -1c
|
|
.RI "struct \fBserif::utils::serialize::Serializer< Node >\fP"
|
|
.br
|
|
.RI "Preserve a raw component when inspection, rather than typed reconstruction, is wanted\&. "
|
|
.ti -1c
|
|
.RI "struct \fBserif::utils::serialize::Serializer< T >\fP"
|
|
.br
|
|
.RI "Store numeric values using explicit portable widths\&. "
|
|
.ti -1c
|
|
.RI "struct \fBserif::utils::serialize::Serializer< std::string >\fP"
|
|
.br
|
|
.ti -1c
|
|
.RI "struct \fBserif::utils::serialize::Serializer< std::string_view >\fP"
|
|
.br
|
|
.ti -1c
|
|
.RI "struct \fBserif::utils::serialize::Serializer< char[Size]>\fP"
|
|
.br
|
|
.ti -1c
|
|
.RI "struct \fBserif::utils::serialize::Serializer< std::vector< T > >\fP"
|
|
.br
|
|
.RI "Arrays of coefficients are contiguous payloads, while compound values retain named children\&. "
|
|
.ti -1c
|
|
.RI "struct \fBserif::utils::serialize::Serializer< std::array< T, Size > >\fP"
|
|
.br
|
|
.ti -1c
|
|
.RI "struct \fBserif::utils::serialize::Serializer< std::optional< T > >\fP"
|
|
.br
|
|
.ti -1c
|
|
.RI "struct \fBserif::utils::serialize::Serializer< std::tuple< T\&.\&.\&. > >\fP"
|
|
.br
|
|
.in -1c
|
|
.SS "Namespaces"
|
|
|
|
.in +1c
|
|
.ti -1c
|
|
.RI "namespace \fBserif\fP"
|
|
.br
|
|
.ti -1c
|
|
.RI "namespace \fBserif::utils\fP"
|
|
.br
|
|
.ti -1c
|
|
.RI "namespace \fBserif::utils::serialize\fP"
|
|
.br
|
|
.in -1c
|
|
.SS "Typedefs"
|
|
|
|
.in +1c
|
|
.ti -1c
|
|
.RI "template<typename T> using \fBserif::utils::serialize::Result\fP = std::expected<T, \fBError\fP>"
|
|
.br
|
|
.ti -1c
|
|
.RI "using \fBserif::utils::serialize::Value\fP"
|
|
.br
|
|
.RI "Portable scientific data; runtime pointers and computational caches have no representation here\&. "
|
|
.in -1c
|
|
.SS "Functions"
|
|
|
|
.in +1c
|
|
.ti -1c
|
|
.RI "template<typename T> \fBNode\fP \fBserif::utils::serialize::encode\fP (const T &value)"
|
|
.br
|
|
.RI "Produce data when a serializer exists, otherwise record the missing capability explicitly\&. "
|
|
.ti -1c
|
|
.RI "template<typename T> \fBResult\fP< T > \fBserif::utils::serialize::decode\fP (const \fBNode\fP &node)"
|
|
.br
|
|
.RI "Translate invalid saved parameters into a value error at the reconstruction boundary\&. "
|
|
.ti -1c
|
|
.RI "template<typename T> \fBField\fP \fBserif::utils::serialize::field\fP (std::string name, const T &value)"
|
|
.br
|
|
.RI "Encode one named field of a component\&. "
|
|
.ti -1c
|
|
.RI "template<typename\&.\&.\&. Fields> \fBNode\fP \fBserif::utils::serialize::object\fP (std::string_view type, Fields\&.\&.\&. fields)"
|
|
.br
|
|
.RI "Compose a component from its independently serialized fields\&. "
|
|
.ti -1c
|
|
.RI "template<typename T> \fBMember\fP< T > \fBserif::utils::serialize::member\fP (std::string_view name)"
|
|
.br
|
|
.RI "Describe one field to read_object without a separate temporary variable\&. "
|
|
.ti -1c
|
|
.RI "template<typename T> \fBResult\fP< T > \fBserif::utils::serialize::read_field\fP (const \fBNode\fP &node, std::string_view name)"
|
|
.br
|
|
.RI "Read a required field and retain its full path in any diagnostic\&. "
|
|
.ti -1c
|
|
.RI "template<typename Construct, typename\&.\&.\&. Members> auto \fBserif::utils::serialize::read_object\fP (const \fBNode\fP &node, std::string_view type, Construct construct, Members\&.\&.\&. members) \-> \fBResult\fP< std::invoke_result_t< Construct, typename Members::Type\&.\&.\&. > >"
|
|
.br
|
|
.RI "Construct a component only after every required field has decoded successfully\&. "
|
|
.ti -1c
|
|
.RI "std::string \fBserif::utils::serialize::fingerprint\fP (std::string_view bytes)"
|
|
.br
|
|
.RI "Versioned content identity for accidental corruption and resource matching; not a cryptographic signature\&. "
|
|
.in -1c
|
|
.SH "Author"
|
|
.PP
|
|
Generated automatically by Doxygen for SERiF from the source code\&.
|