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)
101 lines
9.1 KiB
TeX
101 lines
9.1 KiB
TeX
\doxysection{src/include/serif/utils/serialize/record.hpp File Reference}
|
|
\hypertarget{record_8hpp}{}\label{record_8hpp}\index{src/include/serif/utils/serialize/record.hpp@{src/include/serif/utils/serialize/record.hpp}}
|
|
{\ttfamily \#include $<$algorithm$>$}\newline
|
|
{\ttfamily \#include $<$array$>$}\newline
|
|
{\ttfamily \#include $<$bit$>$}\newline
|
|
{\ttfamily \#include $<$concepts$>$}\newline
|
|
{\ttfamily \#include $<$cstdint$>$}\newline
|
|
{\ttfamily \#include $<$exception$>$}\newline
|
|
{\ttfamily \#include $<$expected$>$}\newline
|
|
{\ttfamily \#include $<$functional$>$}\newline
|
|
{\ttfamily \#include $<$limits$>$}\newline
|
|
{\ttfamily \#include $<$map$>$}\newline
|
|
{\ttfamily \#include $<$optional$>$}\newline
|
|
{\ttfamily \#include $<$string$>$}\newline
|
|
{\ttfamily \#include $<$string\+\_\+view$>$}\newline
|
|
{\ttfamily \#include $<$tuple$>$}\newline
|
|
{\ttfamily \#include $<$type\+\_\+traits$>$}\newline
|
|
{\ttfamily \#include $<$utility$>$}\newline
|
|
{\ttfamily \#include $<$variant$>$}\newline
|
|
{\ttfamily \#include $<$vector$>$}\newline
|
|
Include dependency graph for record.\+hpp\+:
|
|
\nopagebreak
|
|
\begin{figure}[H]
|
|
\begin{center}
|
|
\leavevmode
|
|
\includegraphics[width=350pt]{record_8hpp__incl}
|
|
\end{center}
|
|
\end{figure}
|
|
This graph shows which files directly or indirectly include this file\+:
|
|
\nopagebreak
|
|
\begin{figure}[H]
|
|
\begin{center}
|
|
\leavevmode
|
|
\includegraphics[width=350pt]{record_8hpp__dep__incl}
|
|
\end{center}
|
|
\end{figure}
|
|
\doxysubsubsection*{Classes}
|
|
\begin{DoxyCompactItemize}
|
|
\item
|
|
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_error}{serif\+::utils\+::serialize\+::\+Error}}
|
|
\begin{DoxyCompactList}\small\item\em Identify the component or field that could not be saved or reconstructed. \end{DoxyCompactList}\item
|
|
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_node}{serif\+::utils\+::serialize\+::\+Node}}
|
|
\begin{DoxyCompactList}\small\item\em A named component owns its fields, stable schema identifier, and schema version. \end{DoxyCompactList}\item
|
|
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_field}{serif\+::utils\+::serialize\+::\+Field}}
|
|
\begin{DoxyCompactList}\small\item\em Associate a field name with an already encoded child. \end{DoxyCompactList}\item
|
|
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_member}{serif\+::utils\+::serialize\+::\+Member$<$ T $>$}}
|
|
\begin{DoxyCompactList}\small\item\em Name a typed field expected by a component\textquotesingle{}s loader. \end{DoxyCompactList}\item
|
|
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01_node_01_4}{serif\+::utils\+::serialize\+::\+Serializer$<$ Node $>$}}
|
|
\begin{DoxyCompactList}\small\item\em Preserve a raw component when inspection, rather than typed reconstruction, is wanted. \end{DoxyCompactList}\item
|
|
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01_t_01_4}{serif\+::utils\+::serialize\+::\+Serializer$<$ T $>$}}
|
|
\begin{DoxyCompactList}\small\item\em Store numeric values using explicit portable widths. \end{DoxyCompactList}\item
|
|
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01std_1_1string_01_4}{serif\+::utils\+::serialize\+::\+Serializer$<$ std\+::string $>$}}
|
|
\item
|
|
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01std_1_1string__view_01_4}{serif\+::utils\+::serialize\+::\+Serializer$<$ std\+::string\+\_\+view $>$}}
|
|
\item
|
|
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01char_0f_size_0e_4}{serif\+::utils\+::serialize\+::\+Serializer$<$ char\mbox{[}\+Size\mbox{]}$>$}}
|
|
\item
|
|
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01std_1_1vector_3_01_t_01_4_01_4}{serif\+::utils\+::serialize\+::\+Serializer$<$ std\+::vector$<$ T $>$ $>$}}
|
|
\begin{DoxyCompactList}\small\item\em Arrays of coefficients are contiguous payloads, while compound values retain named children. \end{DoxyCompactList}\item
|
|
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01std_1_1array_3_01_t_00_01_size_01_4_01_4}{serif\+::utils\+::serialize\+::\+Serializer$<$ std\+::array$<$ T, Size $>$ $>$}}
|
|
\item
|
|
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01std_1_1optional_3_01_t_01_4_01_4}{serif\+::utils\+::serialize\+::\+Serializer$<$ std\+::optional$<$ T $>$ $>$}}
|
|
\item
|
|
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01std_1_1tuple_3_01_t_8_8_8_01_4_01_4}{serif\+::utils\+::serialize\+::\+Serializer$<$ std\+::tuple$<$ T... $>$ $>$}}
|
|
\end{DoxyCompactItemize}
|
|
\doxysubsubsection*{Namespaces}
|
|
\begin{DoxyCompactItemize}
|
|
\item
|
|
namespace \mbox{\hyperlink{namespaceserif}{serif}}
|
|
\item
|
|
namespace \mbox{\hyperlink{namespaceserif_1_1utils}{serif\+::utils}}
|
|
\item
|
|
namespace \mbox{\hyperlink{namespaceserif_1_1utils_1_1serialize}{serif\+::utils\+::serialize}}
|
|
\end{DoxyCompactItemize}
|
|
\doxysubsubsection*{Typedefs}
|
|
\begin{DoxyCompactItemize}
|
|
\item
|
|
{\footnotesize template$<$typename T$>$ }\\using \mbox{\hyperlink{namespaceserif_1_1utils_1_1serialize_ace9e0af29889a767ef1c95a09a4b7265}{serif\+::utils\+::serialize\+::\+Result}} = std\+::expected$<$T, \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_error}{Error}}$>$
|
|
\item
|
|
using \mbox{\hyperlink{namespaceserif_1_1utils_1_1serialize_a76d9829ffc510737a78d63b06f115861}{serif\+::utils\+::serialize\+::\+Value}}
|
|
\begin{DoxyCompactList}\small\item\em Portable scientific data; runtime pointers and computational caches have no representation here. \end{DoxyCompactList}\end{DoxyCompactItemize}
|
|
\doxysubsubsection*{Functions}
|
|
\begin{DoxyCompactItemize}
|
|
\item
|
|
{\footnotesize template$<$typename T$>$ }\\\mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_node}{Node}} \mbox{\hyperlink{namespaceserif_1_1utils_1_1serialize_a4ea480fabb9d06528d01b26691fa80ec}{serif\+::utils\+::serialize\+::encode}} (const T \&value)
|
|
\begin{DoxyCompactList}\small\item\em Produce data when a serializer exists, otherwise record the missing capability explicitly. \end{DoxyCompactList}\item
|
|
{\footnotesize template$<$typename T$>$ }\\\mbox{\hyperlink{namespaceserif_1_1utils_1_1serialize_ace9e0af29889a767ef1c95a09a4b7265}{Result}}$<$ T $>$ \mbox{\hyperlink{namespaceserif_1_1utils_1_1serialize_abb3b906587e8c2950b461d615bba7606}{serif\+::utils\+::serialize\+::decode}} (const \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_node}{Node}} \&node)
|
|
\begin{DoxyCompactList}\small\item\em Translate invalid saved parameters into a value error at the reconstruction boundary. \end{DoxyCompactList}\item
|
|
{\footnotesize template$<$typename T$>$ }\\\mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_field}{Field}} \mbox{\hyperlink{namespaceserif_1_1utils_1_1serialize_a73c789fd95f83d2f547facf07bc3ea79}{serif\+::utils\+::serialize\+::field}} (std\+::string name, const T \&value)
|
|
\begin{DoxyCompactList}\small\item\em Encode one named field of a component. \end{DoxyCompactList}\item
|
|
{\footnotesize template$<$typename... Fields$>$ }\\\mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_node}{Node}} \mbox{\hyperlink{namespaceserif_1_1utils_1_1serialize_accd9d8a1543b90311f64896a155c6e1c}{serif\+::utils\+::serialize\+::object}} (std\+::string\+\_\+view type, Fields... fields)
|
|
\begin{DoxyCompactList}\small\item\em Compose a component from its independently serialized fields. \end{DoxyCompactList}\item
|
|
{\footnotesize template$<$typename T$>$ }\\\mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_member}{Member}}$<$ T $>$ \mbox{\hyperlink{namespaceserif_1_1utils_1_1serialize_a019c595419bddb41b7a05042e2f6d611}{serif\+::utils\+::serialize\+::member}} (std\+::string\+\_\+view name)
|
|
\begin{DoxyCompactList}\small\item\em Describe one field to read\+\_\+object without a separate temporary variable. \end{DoxyCompactList}\item
|
|
{\footnotesize template$<$typename T$>$ }\\\mbox{\hyperlink{namespaceserif_1_1utils_1_1serialize_ace9e0af29889a767ef1c95a09a4b7265}{Result}}$<$ T $>$ \mbox{\hyperlink{namespaceserif_1_1utils_1_1serialize_a21172de2e2f37c8797a238eb0bdaea30}{serif\+::utils\+::serialize\+::read\+\_\+field}} (const \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_node}{Node}} \&node, std\+::string\+\_\+view name)
|
|
\begin{DoxyCompactList}\small\item\em Read a required field and retain its full path in any diagnostic. \end{DoxyCompactList}\item
|
|
{\footnotesize template$<$typename Construct, typename... Members$>$ }\\auto \mbox{\hyperlink{namespaceserif_1_1utils_1_1serialize_adb5114bee6aa1ea6612b96babf0ae8c2}{serif\+::utils\+::serialize\+::read\+\_\+object}} (const \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_node}{Node}} \&node, std\+::string\+\_\+view type, Construct construct, Members... members) -\/$>$ \mbox{\hyperlink{namespaceserif_1_1utils_1_1serialize_ace9e0af29889a767ef1c95a09a4b7265}{Result}}$<$ std\+::invoke\+\_\+result\+\_\+t$<$ Construct, typename Members\+::\+Type... $>$ $>$
|
|
\begin{DoxyCompactList}\small\item\em Construct a component only after every required field has decoded successfully. \end{DoxyCompactList}\item
|
|
std\+::string \mbox{\hyperlink{namespaceserif_1_1utils_1_1serialize_ad1fa896c36b9c32ff4b8bdb8660cba33}{serif\+::utils\+::serialize\+::fingerprint}} (std\+::string\+\_\+view bytes)
|
|
\begin{DoxyCompactList}\small\item\em Versioned content identity for accidental corruption and resource matching; not a cryptographic signature. \end{DoxyCompactList}\end{DoxyCompactItemize}
|