Files
MeanField_SERiF/docs/latex/namespaceserif_1_1utils_1_1serialize.tex
Emily Boudreaux 6b57738330 docs(docs): built docs
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)
2026-11-09 14:09:44 -05:00

606 lines
64 KiB
TeX

\doxysection{serif\+::utils\+::serialize Namespace Reference}
\hypertarget{namespaceserif_1_1utils_1_1serialize}{}\label{namespaceserif_1_1utils_1_1serialize}\index{serif::utils::serialize@{serif::utils::serialize}}
\doxysubsubsection*{Namespaces}
\begin{DoxyCompactItemize}
\item
namespace \mbox{\hyperlink{namespaceserif_1_1utils_1_1serialize_1_1detail}{detail}}
\end{DoxyCompactItemize}
\doxysubsubsection*{Classes}
\begin{DoxyCompactItemize}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_entry}{Entry}}
\begin{DoxyCompactList}\small\item\em The ledger locates each independent field without decoding the rest of the archive. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_enum_serializer}{Enum\+Serializer}}
\begin{DoxyCompactList}\small\item\em Encode enumerations by declared stable spellings, never compiler-\/dependent integers. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_error}{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_field}{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}{Member}}
\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_named_member}{Named\+Member}}
\begin{DoxyCompactList}\small\item\em Name a plain configuration member without adding persistence methods to its owner. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_node}{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_pack}{Pack}}
\begin{DoxyCompactList}\small\item\em A pack owns its data immediately, so subsequent model changes cannot alter a pending write. \end{DoxyCompactList}\item
class \mbox{\hyperlink{classserif_1_1utils_1_1serialize_1_1_reader}{Reader}}
\begin{DoxyCompactList}\small\item\em Inspect the ledger first, then seek directly to whichever components are actually needed. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_read_options}{Read\+Options}}
\begin{DoxyCompactList}\small\item\em Bound resource use when inspecting an unfamiliar archive; limits may be raised explicitly. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_recipe_serializer}{Recipe\+Serializer}}
\begin{DoxyCompactList}\small\item\em Preserve the selected equation/unknown identities in every composed inverse. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_schema_serializer}{Schema\+Serializer}}
\begin{DoxyCompactList}\small\item\em Reconstruct stateless typed numerical declarations only when all their identities match. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer}{Serializer}}
\begin{DoxyCompactList}\small\item\em Specialize this protocol beside a component without adding I/O methods to the component itself. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01char_0f_size_0e_4}{Serializer$<$ char\mbox{[}\+Size\mbox{]}$>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01dependencies_1_1_binding_3_01_key_00_01_target_01_4_01_4}{Serializer$<$ dependencies\+::\+Binding$<$ Key, Target $>$ $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01dependencies_1_1_bindings_3_01_bindings_8_8_8_01_4_01_4}{Serializer$<$ dependencies\+::\+Bindings$<$ Bindings... $>$ $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01dependencies_1_1_dependency_context_3_01_resources_8_8_8_01_4_01_4}{Serializer$<$ dependencies\+::\+Dependency\+Context$<$ Resources... $>$ $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01dependencies_1_1_dependency_context_3_4_01_4}{Serializer$<$ dependencies\+::\+Dependency\+Context$<$$>$ $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01dependencies_1_1_key_list_3_01_terms_8_8_8_01_4_01_4}{Serializer$<$ dependencies\+::\+Key\+List$<$ Terms... $>$ $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01dependencies_1_1_resource_3_01_key_00_01_storage_00_01_policy_01_4_01_4}{Serializer$<$ dependencies\+::\+Resource$<$ Key, Storage, Policy $>$ $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01dependencies_1_1_value_snapshot_01_4}{Serializer$<$ dependencies\+::\+Value\+Snapshot $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01dimensions_1_1_quantity_value_3_01_quantity_01_4_01_4}{Serializer$<$ dimensions\+::\+Quantity\+Value$<$ Quantity $>$ $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01discretization_1_1blocks_1_1_system_layout_0ff134e806ae8fabb2824d65ab96ab41}{Serializer$<$ discretization\+::blocks\+::\+System\+Layout$<$ Values, Residuals $>$ $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01discretization_1_1quadrature_1_1_policy_01_4}{Serializer$<$ discretization\+::quadrature\+::\+Policy $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01discretization_1_1quadrature_1_1_rule_control_01_4}{Serializer$<$ discretization\+::quadrature\+::\+Rule\+Control $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01discretization_1_1quadrature_1_1_rule_set_01_4}{Serializer$<$ discretization\+::quadrature\+::\+Rule\+Set $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01eos_1_1models_1_1_polytrope_01_4}{Serializer$<$ eos\+::models\+::\+Polytrope $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01equations_1_1_angular_momentum_constraint_01_4}{Serializer$<$ equations\+::\+Angular\+Momentum\+Constraint $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01equations_1_1_barotropic_density_balance_3_01_e_o_s_01_4_01_4}{Serializer$<$ equations\+::\+Barotropic\+Density\+Balance$<$ EOS $>$ $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01equations_1_1_barycenter_constraint_3_01_axis_00_01_row_01_4_01_4}{Serializer$<$ equations\+::\+Barycenter\+Constraint$<$ Axis, Row $>$ $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01equations_1_1_equation_registry_3_01_equations_8_8_8_01_4_01_4}{Serializer$<$ equations\+::\+Equation\+Registry$<$ Equations... $>$ $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01equations_1_1_mass_normalization_01_4}{Serializer$<$ equations\+::\+Mass\+Normalization $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01equations_1_1_point_mass_companion_01_4}{Serializer$<$ equations\+::\+Point\+Mass\+Companion $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01equations_1_1_primal_poisson_balance_01_4}{Serializer$<$ equations\+::\+Primal\+Poisson\+Balance $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01equations_1_1_surface_potential_balance_01_4}{Serializer$<$ equations\+::\+Surface\+Potential\+Balance $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01geometry_1_1deformation_1_1_domain_deformatfca458f28e7e3e0b42d8a4d880ba00cb}{Serializer$<$ geometry\+::deformation\+::\+Domain\+Deformation$<$ Surface, Interior, Vacuum $>$ $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01geometry_1_1deformation_1_1_fixed_infinity_radial_extension_01_4}{Serializer$<$ geometry\+::deformation\+::\+Fixed\+Infinity\+Radial\+Extension $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01geometry_1_1deformation_1_1_geometry_step_limit_01_4}{Serializer$<$ geometry\+::deformation\+::\+Geometry\+Step\+Limit $>$}}
\begin{DoxyCompactList}\small\item\em Store bounded numerical history as named data, without runtime operators or graph caches. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01geometry_1_1deformation_1_1keys_1_1_surface_metric_01_4}{Serializer$<$ geometry\+::deformation\+::keys\+::\+Surface\+Metric $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01geometry_1_1deformation_1_1_nodal_radial_surface_01_4}{Serializer$<$ geometry\+::deformation\+::\+Nodal\+Radial\+Surface $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01geometry_1_1deformation_1_1_power_law_radial_extension_01_4}{Serializer$<$ geometry\+::deformation\+::\+Power\+Law\+Radial\+Extension $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01geometry_1_1deformation_1_1_spherical_harmonic_surface_01_4}{Serializer$<$ geometry\+::deformation\+::\+Spherical\+Harmonic\+Surface $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01geometry_1_1surface_1_1_isobaric_surface_01_4}{Serializer$<$ geometry\+::surface\+::\+Isobaric\+Surface $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01laneemden_1_1_integration_options_01_4}{Serializer$<$ laneemden\+::\+Integration\+Options $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01model_1_1backend_1_1mfem_1_1_stellar_discree159e3517b28c4c8168613dfca6fe92a}{Serializer$<$ model\+::backend\+::mfem\+::\+Stellar\+Discretization$<$ Owner, Bindings, Deformation $>$ $>$}}
\begin{DoxyCompactList}\small\item\em Integrate native discretizations into packs while keeping application-\/owner reconstruction explicit. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01model_1_1_discretization_options_3_01_model6067d6d29d8c7435c40c1c6cda543675}{Serializer$<$ model\+::\+Discretization\+Options$<$ Model, Finite\+Elements, Normalization, Preconditioner $>$ $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01model_1_1_eos_reference_3_01_e_o_s_01_4_01_4}{Serializer$<$ model\+::\+Eos\+Reference$<$ EOS $>$ $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01model_1_1_equilibrium_equations_3_01_interif5348cc482fa0837731ef29e43caf9e1}{Serializer$<$ model\+::\+Equilibrium\+Equations$<$ Interior, Shape, Surface $>$ $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01model_1_1_fixed_angular_momentum_01_4}{Serializer$<$ model\+::\+Fixed\+Angular\+Momentum $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01model_1_1_fixed_total_mass_01_4}{Serializer$<$ model\+::\+Fixed\+Total\+Mass $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01model_1_1normalization_1_1_surface_rows_01_4}{Serializer$<$ model\+::normalization\+::\+Surface\+Rows $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01model_1_1_no_shape_force_01_4}{Serializer$<$ model\+::\+No\+Shape\+Force $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01model_1_1_no_surface_condition_01_4}{Serializer$<$ model\+::\+No\+Surface\+Condition $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01model_1_1preconditioning_1_1_none_01_4}{Serializer$<$ model\+::preconditioning\+::\+None $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01model_1_1_stellar_model_3_01_e_o_s_00_01_de66a561ce84ebc1ad4f2655cbafe05d29}{Serializer$<$ model\+::\+Stellar\+Model$<$ EOS, Definition, types\+::\+Type\+List$<$ Specifications... $>$ $>$ $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01model_1_1_stellar_state_3_01_layout_01_4_01_4}{Serializer$<$ model\+::\+Stellar\+State$<$ Layout $>$ $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01_node_01_4}{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_01operators_1_1backend_1_1mfem_1_1_volume_options_01_4}{Serializer$<$ operators\+::backend\+::mfem\+::\+Volume\+Options $>$}}
\begin{DoxyCompactList}\small\item\em Preserve quadrature and contraction choices separately from physical coefficients. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01solver_1_1_backtracking_01_4}{Serializer$<$ solver\+::\+Backtracking $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01solver_1_1linear_1_1_control_01_4}{Serializer$<$ solver\+::linear\+::\+Control $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01solver_1_1linear_1_1_f_g_m_r_e_s_01_4}{Serializer$<$ solver\+::linear\+::\+FGMRES $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01solver_1_1linear_1_1_report_01_4}{Serializer$<$ solver\+::linear\+::\+Report $>$}}
\begin{DoxyCompactList}\small\item\em Store bounded numerical history as named data, without runtime operators or graph caches. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01solver_1_1linear_1_1_status_01_4}{Serializer$<$ solver\+::linear\+::\+Status $>$}}
\begin{DoxyCompactList}\small\item\em Preserve stable termination names independently of enum storage or declaration order. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01solver_1_1_metric_evaluation_01_4}{Serializer$<$ solver\+::\+Metric\+Evaluation $>$}}
\begin{DoxyCompactList}\small\item\em Store bounded numerical history as named data, without runtime operators or graph caches. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01solver_1_1_newton_01_4}{Serializer$<$ solver\+::\+Newton $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01solver_1_1_newton_checkpoint_3_01_state_01_4_01_4}{Serializer$<$ solver\+::\+Newton\+Checkpoint$<$ State $>$ $>$}}
\begin{DoxyCompactList}\small\item\em Save a portable accepted physical state together with its complete supported Newton history. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01solver_1_1_newton_progress_01_4}{Serializer$<$ solver\+::\+Newton\+Progress $>$}}
\begin{DoxyCompactList}\small\item\em Store bounded numerical history as named data, without runtime operators or graph caches. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01solver_1_1normalization_1_1_automatic_plan_01_4}{Serializer$<$ solver\+::normalization\+::\+Automatic\+Plan $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01solver_1_1normalization_1_1_diagonal_normalization_01_4}{Serializer$<$ solver\+::normalization\+::\+Diagonal\+Normalization $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01solver_1_1normalization_1_1_dimensionless_01_4}{Serializer$<$ solver\+::normalization\+::\+Dimensionless $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01solver_1_1normalization_1_1_dimensionless_r5cccab2fd1f566ce0d4cd0c4272c0de8}{Serializer$<$ solver\+::normalization\+::\+Dimensionless\+Riesz\+Coordinate$<$ Quantity, Metric, Geometry $>$ $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01solver_1_1normalization_1_1_from_model_01_4}{Serializer$<$ solver\+::normalization\+::\+From\+Model $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01solver_1_1normalization_1_1_identity_coordinate_01_4}{Serializer$<$ solver\+::normalization\+::\+Identity\+Coordinate $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01solver_1_1normalization_1_1_lane_emden_appr280bda78ea4050d0ff8b72e64d00b94a}{Serializer$<$ solver\+::normalization\+::\+Lane\+Emden\+Approximation$<$ Mass, Density $>$ $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01solver_1_1normalization_1_1_normalization_o6acc76af4c0fbc1dccb396f0a7cb69c5}{Serializer$<$ solver\+::normalization\+::\+Normalization\+Options$<$ Scheme, Coordinates, Plan, Sources, Computations $>$ $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01solver_1_1normalization_1_1_normalization_p405753c19e233a35f6ab15d812b35123}{Serializer$<$ solver\+::normalization\+::\+Normalization\+Plan$<$ Values, Residuals $>$ $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01solver_1_1normalization_1_1_physical_riesz_adabf6970471703d441b80d61686d40f}{Serializer$<$ solver\+::normalization\+::\+Physical\+Riesz\+Coordinate$<$ Quantity, Metric $>$ $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01solver_1_1normalization_1_1_reference_volume_metric_3_01_term_01_4_01_4}{Serializer$<$ solver\+::normalization\+::\+Reference\+Volume\+Metric$<$ Term $>$ $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01solver_1_1normalization_1_1_stellar_reference_scales_01_4}{Serializer$<$ solver\+::normalization\+::\+Stellar\+Reference\+Scales $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01solver_1_1normalization_1_1_unit_metric_01_4}{Serializer$<$ solver\+::normalization\+::\+Unit\+Metric $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01solver_1_1normalization_1_1_with_point_rows7f253a21848d4633f0a601821f4c7a4e}{Serializer$<$ solver\+::normalization\+::\+With\+Point\+Rows$<$ Volume, Quantity, Selection $>$ $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01solver_1_1_normalized_residual_metric_01_4}{Serializer$<$ solver\+::\+Normalized\+Residual\+Metric $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01solver_1_1preconditioner_1_1_block_precondi8332ef5e96df07be9da235c2e3175838}{Serializer$<$ solver\+::preconditioner\+::\+Block\+Preconditioner$<$ Row, Field, Strategy $>$ $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01solver_1_1preconditioner_1_1_bordered_preco61576a59daf50c7dd924da92bf2d3074}{Serializer$<$ solver\+::preconditioner\+::\+Bordered\+Preconditioner$<$ Fields, Constraints $>$ $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01solver_1_1preconditioner_1_1_coupled_precon5f86489d6a54160e4f32d710885530a8}{Serializer$<$ solver\+::preconditioner\+::\+Coupled\+Preconditioner$<$ First, Second, Policy $>$ $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01solver_1_1preconditioner_1_1strategies_1_1c749e8d76ab33c4221418ab091a95767f}{Serializer$<$ solver\+::preconditioner\+::strategies\+::coupling\+::\+Second\+Then\+First $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01solver_1_1preconditioner_1_1strategies_1_1inverse_1_1_dense_direct_01_4}{Serializer$<$ solver\+::preconditioner\+::strategies\+::inverse\+::\+Dense\+Direct $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01solver_1_1preconditioner_1_1strategies_1_1inverse_1_1_diagonal_01_4}{Serializer$<$ solver\+::preconditioner\+::strategies\+::inverse\+::\+Diagonal $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01solver_1_1preconditioner_1_1strategies_1_1inverse_1_1_fixed_a_m_g_01_4}{Serializer$<$ solver\+::preconditioner\+::strategies\+::inverse\+::\+Fixed\+AMG $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01solver_1_1preconditioner_1_1strategies_1_1inverse_1_1_sparse_direct_01_4}{Serializer$<$ solver\+::preconditioner\+::strategies\+::inverse\+::\+Sparse\+Direct $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01solver_1_1_solve_diagnostics_01_4}{Serializer$<$ solver\+::\+Solve\+Diagnostics $>$}}
\begin{DoxyCompactList}\small\item\em Store bounded numerical history as named data, without runtime operators or graph caches. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01solver_1_1_solve_result_3_01_state_00_01_system_00_01_model_01_4_01_4}{Serializer$<$ solver\+::\+Solve\+Result$<$ State, System, Model $>$ $>$}}
\begin{DoxyCompactList}\small\item\em Export scientific results and supported restart data without pretending frozen operators are persistent. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01solver_1_1_solver_options_3_01_metric_00_013ca3bdcad21963925dfd88948dd19ab4}{Serializer$<$ solver\+::\+Solver\+Options$<$ Metric, Strategies, Linear $>$ $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01solver_1_1_solve_status_01_4}{Serializer$<$ solver\+::\+Solve\+Status $>$}}
\begin{DoxyCompactList}\small\item\em Preserve stable termination names independently of enum storage or declaration order. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01solver_1_1_standard_newton_01_4}{Serializer$<$ solver\+::\+Standard\+Newton $>$}}
\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}{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}{Serializer$<$ std\+::optional$<$ T $>$ $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01std_1_1string_01_4}{Serializer$<$ std\+::string $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01std_1_1string__view_01_4}{Serializer$<$ std\+::string\+\_\+view $>$}}
\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}{Serializer$<$ std\+::tuple$<$ T... $>$ $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_serializer_3_01std_1_1vector_3_01_t_01_4_01_4}{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_01_t_01_4}{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_struct_serializer}{Struct\+Serializer}}
\begin{DoxyCompactList}\small\item\em Compose an explicitly listed aggregate; the field list is also its constructor order. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_term_identity}{Term\+Identity}}
\begin{DoxyCompactList}\small\item\em Register stable coordinate identities separately from compiler-\/generated display names. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_term_identity_3_01discretization_1_1blocks_1_1barotropic__89bc695dfd6145b8157982b62f74f600}{Term\+Identity$<$ discretization\+::blocks\+::barotropic\+\_\+constant\+::mass\+\_\+normalization $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_term_identity_3_01discretization_1_1blocks_1_1density_1_1mass_01_4}{Term\+Identity$<$ discretization\+::blocks\+::density\+::mass $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_term_identity_3_01discretization_1_1blocks_1_1displacement_1_1vector_01_4}{Term\+Identity$<$ discretization\+::blocks\+::displacement\+::vector $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_term_identity_3_01discretization_1_1blocks_1_1gravity_1_1potential_01_4}{Term\+Identity$<$ discretization\+::blocks\+::gravity\+::potential $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_term_identity_3_01discretization_1_1blocks_1_1rotation_1_1angular__velocity_01_4}{Term\+Identity$<$ discretization\+::blocks\+::rotation\+::angular\+\_\+velocity $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_term_identity_3_01discretization_1_1blocks_1_1surface__deformation_1_1coefficients_01_4}{Term\+Identity$<$ discretization\+::blocks\+::surface\+\_\+deformation\+::coefficients $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_term_identity_3_01discretization_1_1blocks_1_1surface__def9d4d4c300051a0fc97927e0b7b8e5806}{Term\+Identity$<$ discretization\+::blocks\+::surface\+\_\+deformation\+::shape\+\_\+equilibrium $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_term_identity_3_01model_1_1_constraint_of_3_01_specification_01_4_01_4}{Term\+Identity$<$ model\+::\+Constraint\+Of$<$ Specification $>$ $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_term_identity_3_01model_1_1_generated_coordinate_of_3_01_specification_01_4_01_4}{Term\+Identity$<$ model\+::\+Generated\+Coordinate\+Of$<$ Specification $>$ $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_top_export_options}{Top\+Export\+Options}}
\begin{DoxyCompactList}\small\item\em Sampling and admissibility limits for TOP\textquotesingle{}s single-\/domain polytrope reader. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_top_export_report}{Top\+Export\+Report}}
\begin{DoxyCompactList}\small\item\em Export scales and sampled projection defects; these do not certify oscillation accuracy. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_top_polytrope_source}{Top\+Polytrope\+Source}}
\begin{DoxyCompactList}\small\item\em Physical samples in a centered frame whose polar axis is the rotation axis. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_write_options}{Write\+Options}}
\begin{DoxyCompactList}\small\item\em Annotations belong to the written observation, not to the stellar physics. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Typedefs}
\begin{DoxyCompactItemize}
\item
{\footnotesize template$<$typename Original\+Model$>$ }\\using \mbox{\hyperlink{namespaceserif_1_1utils_1_1serialize_af0afd5aacbd77b40205164c3ec2cf423}{Restored\+Stellar\+Model}} = \mbox{\hyperlink{classserif_1_1model_1_1_stellar_model}{model\+::\+Stellar\+Model}}$<$typename Original\+Model\+::\+Equation\+Of\+State, \mbox{\hyperlink{namespaceserif_1_1utils_1_1serialize_1_1detail_a331361f70fa27188f1a1679faa827273}{detail\+::\+Owned\+Equations}}$<$Original\+Model$>$, typename Original\+Model\+::\+Specification\+Types$>$
\begin{DoxyCompactList}\small\item\em Restore current physics as an explicit composition, without pretending to regenerate a deferred program. \end{DoxyCompactList}\item
{\footnotesize template$<$typename T$>$ }\\using \mbox{\hyperlink{namespaceserif_1_1utils_1_1serialize_ace9e0af29889a767ef1c95a09a4b7265}{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}{Value}}
\begin{DoxyCompactList}\small\item\em Portable scientific data; runtime pointers and computational caches have no representation here. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Enumerations}
\begin{DoxyCompactItemize}
\item
enum class \mbox{\hyperlink{namespaceserif_1_1utils_1_1serialize_af59ceea5df9600e1e8c0e762e6b08c99}{Format}} \{ \mbox{\hyperlink{namespaceserif_1_1utils_1_1serialize_af59ceea5df9600e1e8c0e762e6b08c99a9d7183f16acce70658f686ae7f1a4d20}{binary}}
, \mbox{\hyperlink{namespaceserif_1_1utils_1_1serialize_af59ceea5df9600e1e8c0e762e6b08c99a1cb251ec0d568de6a929b520c4aed8d1}{text}}
\}
\begin{DoxyCompactList}\small\item\em Both encodings share the same component schemas and indexed, sectioned file layout. \end{DoxyCompactList}\item
enum class \mbox{\hyperlink{namespaceserif_1_1utils_1_1serialize_a02674e30cfb576e300d365827de17279}{Version\+Tolerance}} \{ \mbox{\hyperlink{namespaceserif_1_1utils_1_1serialize_a02674e30cfb576e300d365827de17279ae79a3672fcb675134bb57abd3e0dfae3}{same\+\_\+major}}
, \mbox{\hyperlink{namespaceserif_1_1utils_1_1serialize_a02674e30cfb576e300d365827de17279a3b7efa09444a31c5d58596e5bbf87d47}{exact}}
, \mbox{\hyperlink{namespaceserif_1_1utils_1_1serialize_a02674e30cfb576e300d365827de17279a100b8cad7cf2a56f6df78f171f97a1ec}{any}}
\}
\begin{DoxyCompactList}\small\item\em Application-\/version compatibility is separate from file-\/format and component-\/schema compatibility. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Functions}
\begin{DoxyCompactItemize}
\item
{\footnotesize template$<$model\+::\+Stellar\+Model\+Type Model, typename Finite\+Elements, typename State$>$ }\\\mbox{\hyperlink{namespaceserif_1_1utils_1_1serialize_ace9e0af29889a767ef1c95a09a4b7265}{Result}}$<$ \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_top_export_report}{Top\+Export\+Report}} $>$ \mbox{\hyperlink{namespaceserif_1_1utils_1_1serialize_ac247352aee3417238eda1bf573f1b197}{export\+\_\+top}} (const std\+::filesystem\+::path \&directory, const Model \&stellar\+\_\+model, const Finite\+Elements \&finite\+\_\+elements, const State \&state, const \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_top_export_options}{Top\+Export\+Options}} \&options=\{\})
\begin{DoxyCompactList}\small\item\em Export the accepted density and FE surface of a uniformly rotating vacuum polytrope to TOP. \end{DoxyCompactList}\item
{\footnotesize template$<$typename Finite\+Elements, typename Solution$>$ \newline
requires requires(const Solution\& solution) \{ solution.\+has\+\_\+state(); solution.\+model(); solution.\+state(); \}}\\\mbox{\hyperlink{namespaceserif_1_1utils_1_1serialize_ace9e0af29889a767ef1c95a09a4b7265}{Result}}$<$ \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_top_export_report}{Top\+Export\+Report}} $>$ \mbox{\hyperlink{namespaceserif_1_1utils_1_1serialize_aa5efebebb4fcf770cef7679e0e924627}{export\+\_\+top}} (const std\+::filesystem\+::path \&directory, const Finite\+Elements \&finite\+\_\+elements, const Solution \&solution, const \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_top_export_options}{Top\+Export\+Options}} \&options=\{\})
\begin{DoxyCompactList}\small\item\em Export a solver result with the separately owned FE resources that interpret its accepted state. \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_ab93715bd271d15568badc8f1d5423271}{named}} (std\+::string name, const T \&value)
\begin{DoxyCompactList}\small\item\em Assign an explicit top-\/level name, for example when storing two stars in the same archive. \end{DoxyCompactList}\item
void \mbox{\hyperlink{namespaceserif_1_1utils_1_1serialize_a7f4727c3a8f5b10ed46c149785bd8c82}{add\+\_\+component}} (\mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_pack}{Pack}} \&\mbox{\hyperlink{namespaceserif_1_1utils_1_1serialize_ad8a45ed21a6cf9a7ca63582a18526f9b}{pack}}, \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_field}{Field}} component)
\begin{DoxyCompactList}\small\item\em Insert a component while rejecting conflicting definitions of the same named object. \end{DoxyCompactList}\item
{\footnotesize template$<$typename... T$>$ }\\\mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_pack}{Pack}} \mbox{\hyperlink{namespaceserif_1_1utils_1_1serialize_ad8a45ed21a6cf9a7ca63582a18526f9b}{pack}} (const T \&... values)
\begin{DoxyCompactList}\small\item\em Capture every supplied component; unregistered nested types remain visible as unsupported entries. \end{DoxyCompactList}\item
\mbox{\hyperlink{namespaceserif_1_1utils_1_1serialize_ace9e0af29889a767ef1c95a09a4b7265}{Result}}$<$ void $>$ \mbox{\hyperlink{namespaceserif_1_1utils_1_1serialize_a53de7b4a0d01bed188ef53fbeb4c3e7e}{write}} (const std\+::filesystem\+::path \&path, const \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_pack}{Pack}} \&contents, const \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_write_options}{Write\+Options}} \&options=\{\})
\begin{DoxyCompactList}\small\item\em Write a complete temporary file and atomically replace the destination only after it closes successfully. \end{DoxyCompactList}\item
{\footnotesize template$<$typename Owner, typename \mbox{\hyperlink{namespaceserif_1_1utils_1_1serialize_a76d9829ffc510737a78d63b06f115861}{Value}}$>$ }\\constexpr auto \mbox{\hyperlink{namespaceserif_1_1utils_1_1serialize_a57bf01379dd9f09662f2eca940c2287a}{member\+\_\+field}} (std\+::string\+\_\+view name, \mbox{\hyperlink{namespaceserif_1_1utils_1_1serialize_a76d9829ffc510737a78d63b06f115861}{Value}} Owner\+::\texorpdfstring{$\ast$}{*}pointer)
\begin{DoxyCompactList}\small\item\em Deduce a member\textquotesingle{}s stored type from its ordinary C++ declaration. \end{DoxyCompactList}\item
{\footnotesize template$<$typename Term$>$ }\\\mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_node}{Node}} \mbox{\hyperlink{namespaceserif_1_1utils_1_1serialize_a2467d2dec6186bb040f634a1320c279a}{term\+\_\+schema}} ()
\begin{DoxyCompactList}\small\item\em Expose the physical meaning and FE representation of one compiled coordinate. \end{DoxyCompactList}\item
\mbox{\hyperlink{namespaceserif_1_1utils_1_1serialize_ace9e0af29889a767ef1c95a09a4b7265}{Result}}$<$ void $>$ \mbox{\hyperlink{namespaceserif_1_1utils_1_1serialize_ab00ec68c8966b7783b811342ba3202a5}{validate\+\_\+schema}} (const \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_node}{Node}} \&saved, const \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_node}{Node}} \&expected)
\begin{DoxyCompactList}\small\item\em A compiled identity must match and must have an explicit persistence registration. \end{DoxyCompactList}\item
{\footnotesize template$<$typename Original\+Model$>$ }\\\mbox{\hyperlink{namespaceserif_1_1utils_1_1serialize_ace9e0af29889a767ef1c95a09a4b7265}{Result}}$<$ \mbox{\hyperlink{namespaceserif_1_1utils_1_1serialize_af0afd5aacbd77b40205164c3ec2cf423}{Restored\+Stellar\+Model}}$<$ Original\+Model $>$ $>$ \mbox{\hyperlink{namespaceserif_1_1utils_1_1serialize_ad8c80c4dc17552d1b312b26428b20ccd}{restore\+\_\+stellar\+\_\+model}} (const \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_node}{Node}} \&node)
\begin{DoxyCompactList}\small\item\em Reconstruct resolved physics; future changes requiring the original callback remain a separate capability. \end{DoxyCompactList}\item
{\footnotesize template$<$typename T$>$ }\\\mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_node}{Node}} \mbox{\hyperlink{namespaceserif_1_1utils_1_1serialize_a4ea480fabb9d06528d01b26691fa80ec}{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}{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}{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}{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}{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}{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}{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}{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}\item
\mbox{\hyperlink{namespaceserif_1_1utils_1_1serialize_ace9e0af29889a767ef1c95a09a4b7265}{Result}}$<$ \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_top_export_report}{Top\+Export\+Report}} $>$ \mbox{\hyperlink{namespaceserif_1_1utils_1_1serialize_a2e0edf5820600e4b31b47f2a0a3fe183}{export\+\_\+top}} (const std\+::filesystem\+::path \&path, const \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_top_polytrope_source}{Top\+Polytrope\+Source}} \&source, const \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_top_export_options}{Top\+Export\+Options}} \&options=\{\})
\begin{DoxyCompactList}\small\item\em Atomically publish a new TOP model directory, refusing to overwrite any destination. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection{Typedef Documentation}
\Hypertarget{namespaceserif_1_1utils_1_1serialize_af0afd5aacbd77b40205164c3ec2cf423}\index{serif::utils::serialize@{serif::utils::serialize}!RestoredStellarModel@{RestoredStellarModel}}
\index{RestoredStellarModel@{RestoredStellarModel}!serif::utils::serialize@{serif::utils::serialize}}
\doxysubsubsection{\texorpdfstring{RestoredStellarModel}{RestoredStellarModel}}
{\footnotesize\ttfamily \label{namespaceserif_1_1utils_1_1serialize_af0afd5aacbd77b40205164c3ec2cf423}
template$<$typename Original\+Model$>$ \\
using \mbox{\hyperlink{namespaceserif_1_1utils_1_1serialize_af0afd5aacbd77b40205164c3ec2cf423}{serif\+::utils\+::serialize\+::\+Restored\+Stellar\+Model}} = \mbox{\hyperlink{classserif_1_1model_1_1_stellar_model}{model\+::\+Stellar\+Model}}$<$typename Original\+Model\+::\+Equation\+Of\+State, \mbox{\hyperlink{namespaceserif_1_1utils_1_1serialize_1_1detail_a331361f70fa27188f1a1679faa827273}{detail\+::\+Owned\+Equations}}$<$Original\+Model$>$, typename Original\+Model\+::\+Specification\+Types$>$}
Restore current physics as an explicit composition, without pretending to regenerate a deferred program.
\Hypertarget{namespaceserif_1_1utils_1_1serialize_ace9e0af29889a767ef1c95a09a4b7265}\index{serif::utils::serialize@{serif::utils::serialize}!Result@{Result}}
\index{Result@{Result}!serif::utils::serialize@{serif::utils::serialize}}
\doxysubsubsection{\texorpdfstring{Result}{Result}}
{\footnotesize\ttfamily \label{namespaceserif_1_1utils_1_1serialize_ace9e0af29889a767ef1c95a09a4b7265}
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}}$>$}
\Hypertarget{namespaceserif_1_1utils_1_1serialize_a76d9829ffc510737a78d63b06f115861}\index{serif::utils::serialize@{serif::utils::serialize}!Value@{Value}}
\index{Value@{Value}!serif::utils::serialize@{serif::utils::serialize}}
\doxysubsubsection{\texorpdfstring{Value}{Value}}
{\footnotesize\ttfamily \label{namespaceserif_1_1utils_1_1serialize_a76d9829ffc510737a78d63b06f115861}
using \mbox{\hyperlink{namespaceserif_1_1utils_1_1serialize_a76d9829ffc510737a78d63b06f115861}{serif\+::utils\+::serialize\+::\+Value}}}
{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{\ std::variant<std::monostate,\ bool,\ std::int64\_t,\ std::uint64\_t,\ double,\ std::string,}
\DoxyCodeLine{\ \ \ \ \ \ \ \ std::vector<double>,\ std::vector<std::int64\_t>,\ std::vector<std::uint64\_t>>}
\end{DoxyCode}
Portable scientific data; runtime pointers and computational caches have no representation here.
\doxysubsection{Enumeration Type Documentation}
\Hypertarget{namespaceserif_1_1utils_1_1serialize_af59ceea5df9600e1e8c0e762e6b08c99}\index{serif::utils::serialize@{serif::utils::serialize}!Format@{Format}}
\index{Format@{Format}!serif::utils::serialize@{serif::utils::serialize}}
\doxysubsubsection{\texorpdfstring{Format}{Format}}
{\footnotesize\ttfamily \label{namespaceserif_1_1utils_1_1serialize_af59ceea5df9600e1e8c0e762e6b08c99}
enum class \mbox{\hyperlink{namespaceserif_1_1utils_1_1serialize_af59ceea5df9600e1e8c0e762e6b08c99}{serif\+::utils\+::serialize\+::\+Format}}\hspace{0.3cm}{\ttfamily [strong]}}
Both encodings share the same component schemas and indexed, sectioned file layout.
\begin{DoxyEnumFields}[2]{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{binary@{binary}!serif::utils::serialize@{serif::utils::serialize}}\index{serif::utils::serialize@{serif::utils::serialize}!binary@{binary}}}\Hypertarget{namespaceserif_1_1utils_1_1serialize_af59ceea5df9600e1e8c0e762e6b08c99a9d7183f16acce70658f686ae7f1a4d20}\label{namespaceserif_1_1utils_1_1serialize_af59ceea5df9600e1e8c0e762e6b08c99a9d7183f16acce70658f686ae7f1a4d20}
binary&\\
\hline
\raisebox{\heightof{T}}[0pt][0pt]{\index{text@{text}!serif::utils::serialize@{serif::utils::serialize}}\index{serif::utils::serialize@{serif::utils::serialize}!text@{text}}}\Hypertarget{namespaceserif_1_1utils_1_1serialize_af59ceea5df9600e1e8c0e762e6b08c99a1cb251ec0d568de6a929b520c4aed8d1}\label{namespaceserif_1_1utils_1_1serialize_af59ceea5df9600e1e8c0e762e6b08c99a1cb251ec0d568de6a929b520c4aed8d1}
text&\\
\hline
\end{DoxyEnumFields}
\Hypertarget{namespaceserif_1_1utils_1_1serialize_a02674e30cfb576e300d365827de17279}\index{serif::utils::serialize@{serif::utils::serialize}!VersionTolerance@{VersionTolerance}}
\index{VersionTolerance@{VersionTolerance}!serif::utils::serialize@{serif::utils::serialize}}
\doxysubsubsection{\texorpdfstring{VersionTolerance}{VersionTolerance}}
{\footnotesize\ttfamily \label{namespaceserif_1_1utils_1_1serialize_a02674e30cfb576e300d365827de17279}
enum class \mbox{\hyperlink{namespaceserif_1_1utils_1_1serialize_a02674e30cfb576e300d365827de17279}{serif\+::utils\+::serialize\+::\+Version\+Tolerance}}\hspace{0.3cm}{\ttfamily [strong]}}
Application-\/version compatibility is separate from file-\/format and component-\/schema compatibility.
\begin{DoxyEnumFields}[2]{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{same\_major@{same\_major}!serif::utils::serialize@{serif::utils::serialize}}\index{serif::utils::serialize@{serif::utils::serialize}!same\_major@{same\_major}}}\Hypertarget{namespaceserif_1_1utils_1_1serialize_a02674e30cfb576e300d365827de17279ae79a3672fcb675134bb57abd3e0dfae3}\label{namespaceserif_1_1utils_1_1serialize_a02674e30cfb576e300d365827de17279ae79a3672fcb675134bb57abd3e0dfae3}
same\+\_\+major&\\
\hline
\raisebox{\heightof{T}}[0pt][0pt]{\index{exact@{exact}!serif::utils::serialize@{serif::utils::serialize}}\index{serif::utils::serialize@{serif::utils::serialize}!exact@{exact}}}\Hypertarget{namespaceserif_1_1utils_1_1serialize_a02674e30cfb576e300d365827de17279a3b7efa09444a31c5d58596e5bbf87d47}\label{namespaceserif_1_1utils_1_1serialize_a02674e30cfb576e300d365827de17279a3b7efa09444a31c5d58596e5bbf87d47}
exact&\\
\hline
\raisebox{\heightof{T}}[0pt][0pt]{\index{any@{any}!serif::utils::serialize@{serif::utils::serialize}}\index{serif::utils::serialize@{serif::utils::serialize}!any@{any}}}\Hypertarget{namespaceserif_1_1utils_1_1serialize_a02674e30cfb576e300d365827de17279a100b8cad7cf2a56f6df78f171f97a1ec}\label{namespaceserif_1_1utils_1_1serialize_a02674e30cfb576e300d365827de17279a100b8cad7cf2a56f6df78f171f97a1ec}
any&\\
\hline
\end{DoxyEnumFields}
\doxysubsection{Function Documentation}
\Hypertarget{namespaceserif_1_1utils_1_1serialize_a7f4727c3a8f5b10ed46c149785bd8c82}\index{serif::utils::serialize@{serif::utils::serialize}!add\_component@{add\_component}}
\index{add\_component@{add\_component}!serif::utils::serialize@{serif::utils::serialize}}
\doxysubsubsection{\texorpdfstring{add\_component()}{add\_component()}}
{\footnotesize\ttfamily \label{namespaceserif_1_1utils_1_1serialize_a7f4727c3a8f5b10ed46c149785bd8c82}
void serif\+::utils\+::serialize\+::add\+\_\+component (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_pack}{Pack}} \&}]{pack}{, }\item[{\mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_field}{Field}}}]{component}{}\end{DoxyParamCaption})}
Insert a component while rejecting conflicting definitions of the same named object.
\Hypertarget{namespaceserif_1_1utils_1_1serialize_abb3b906587e8c2950b461d615bba7606}\index{serif::utils::serialize@{serif::utils::serialize}!decode@{decode}}
\index{decode@{decode}!serif::utils::serialize@{serif::utils::serialize}}
\doxysubsubsection{\texorpdfstring{decode()}{decode()}}
{\footnotesize\ttfamily \label{namespaceserif_1_1utils_1_1serialize_abb3b906587e8c2950b461d615bba7606}
template$<$typename T$>$ \\
\mbox{\hyperlink{namespaceserif_1_1utils_1_1serialize_ace9e0af29889a767ef1c95a09a4b7265}{Result}}$<$ T $>$ serif\+::utils\+::serialize\+::decode (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_node}{Node}} \&}]{node}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}}
Translate invalid saved parameters into a value error at the reconstruction boundary.
\Hypertarget{namespaceserif_1_1utils_1_1serialize_a4ea480fabb9d06528d01b26691fa80ec}\index{serif::utils::serialize@{serif::utils::serialize}!encode@{encode}}
\index{encode@{encode}!serif::utils::serialize@{serif::utils::serialize}}
\doxysubsubsection{\texorpdfstring{encode()}{encode()}}
{\footnotesize\ttfamily \label{namespaceserif_1_1utils_1_1serialize_a4ea480fabb9d06528d01b26691fa80ec}
template$<$typename T$>$ \\
\mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_node}{Node}} serif\+::utils\+::serialize\+::encode (\begin{DoxyParamCaption}\item[{const T \&}]{value}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}}
Produce data when a serializer exists, otherwise record the missing capability explicitly.
\Hypertarget{namespaceserif_1_1utils_1_1serialize_aa5efebebb4fcf770cef7679e0e924627}\index{serif::utils::serialize@{serif::utils::serialize}!export\_top@{export\_top}}
\index{export\_top@{export\_top}!serif::utils::serialize@{serif::utils::serialize}}
\doxysubsubsection{\texorpdfstring{export\_top()}{export\_top()}\hspace{0.1cm}{\footnotesize\ttfamily [1/3]}}
{\footnotesize\ttfamily \label{namespaceserif_1_1utils_1_1serialize_aa5efebebb4fcf770cef7679e0e924627}
template$<$typename Finite\+Elements, typename Solution$>$ \newline
requires requires(const Solution\& solution) \{ solution.\+has\+\_\+state(); solution.\+model(); solution.\+state(); \}\\
\mbox{\hyperlink{namespaceserif_1_1utils_1_1serialize_ace9e0af29889a767ef1c95a09a4b7265}{Result}}$<$ \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_top_export_report}{Top\+Export\+Report}} $>$ serif\+::utils\+::serialize\+::export\+\_\+top (\begin{DoxyParamCaption}\item[{const std\+::filesystem\+::path \&}]{directory}{, }\item[{const Finite\+Elements \&}]{finite\+\_\+elements}{, }\item[{const Solution \&}]{solution}{, }\item[{const \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_top_export_options}{Top\+Export\+Options}} \&}]{options}{ = {\ttfamily \{\}}}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}}
Export a solver result with the separately owned FE resources that interpret its accepted state.
\Hypertarget{namespaceserif_1_1utils_1_1serialize_ac247352aee3417238eda1bf573f1b197}\index{serif::utils::serialize@{serif::utils::serialize}!export\_top@{export\_top}}
\index{export\_top@{export\_top}!serif::utils::serialize@{serif::utils::serialize}}
\doxysubsubsection{\texorpdfstring{export\_top()}{export\_top()}\hspace{0.1cm}{\footnotesize\ttfamily [2/3]}}
{\footnotesize\ttfamily \label{namespaceserif_1_1utils_1_1serialize_ac247352aee3417238eda1bf573f1b197}
template$<$model\+::\+Stellar\+Model\+Type Model, typename Finite\+Elements, typename State$>$ \\
\mbox{\hyperlink{namespaceserif_1_1utils_1_1serialize_ace9e0af29889a767ef1c95a09a4b7265}{Result}}$<$ \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_top_export_report}{Top\+Export\+Report}} $>$ serif\+::utils\+::serialize\+::export\+\_\+top (\begin{DoxyParamCaption}\item[{const std\+::filesystem\+::path \&}]{directory}{, }\item[{const Model \&}]{stellar\+\_\+model}{, }\item[{const Finite\+Elements \&}]{finite\+\_\+elements}{, }\item[{const State \&}]{state}{, }\item[{const \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_top_export_options}{Top\+Export\+Options}} \&}]{options}{ = {\ttfamily \{\}}}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}}
Export the accepted density and FE surface of a uniformly rotating vacuum polytrope to TOP.
\begin{DoxyNote}{Note}
Stellar\+Model owns physics, while finite\+\_\+elements and state supply its numerical realization. Enthalpy is derived only for this external file format; it is not introduced as a SERiF unknown. The native TOP polytrope reader does not represent general EOS or finite-\/pressure surfaces.
\end{DoxyNote}
\Hypertarget{namespaceserif_1_1utils_1_1serialize_a2e0edf5820600e4b31b47f2a0a3fe183}\index{serif::utils::serialize@{serif::utils::serialize}!export\_top@{export\_top}}
\index{export\_top@{export\_top}!serif::utils::serialize@{serif::utils::serialize}}
\doxysubsubsection{\texorpdfstring{export\_top()}{export\_top()}\hspace{0.1cm}{\footnotesize\ttfamily [3/3]}}
{\footnotesize\ttfamily \label{namespaceserif_1_1utils_1_1serialize_a2e0edf5820600e4b31b47f2a0a3fe183}
\mbox{\hyperlink{namespaceserif_1_1utils_1_1serialize_ace9e0af29889a767ef1c95a09a4b7265}{Result}}$<$ \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_top_export_report}{Top\+Export\+Report}} $>$ serif\+::utils\+::serialize\+::export\+\_\+top (\begin{DoxyParamCaption}\item[{const std\+::filesystem\+::path \&}]{path}{, }\item[{const \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_top_polytrope_source}{Top\+Polytrope\+Source}} \&}]{source}{, }\item[{const \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_top_export_options}{Top\+Export\+Options}} \&}]{options}{ = {\ttfamily \{\}}}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}}
Atomically publish a new TOP model directory, refusing to overwrite any destination.
\begin{DoxyNote}{Note}
Projects the source surface and pressure-\/derived enthalpy at common surface-\/fitted zeta coordinates. Only equatorially symmetric axisymmetric vacuum polytropes with n\texorpdfstring{$>$}{>}=1 are supported. TOP chooses Gamma1 in its equation set, separately from these files.
\end{DoxyNote}
\Hypertarget{namespaceserif_1_1utils_1_1serialize_a73c789fd95f83d2f547facf07bc3ea79}\index{serif::utils::serialize@{serif::utils::serialize}!field@{field}}
\index{field@{field}!serif::utils::serialize@{serif::utils::serialize}}
\doxysubsubsection{\texorpdfstring{field()}{field()}}
{\footnotesize\ttfamily \label{namespaceserif_1_1utils_1_1serialize_a73c789fd95f83d2f547facf07bc3ea79}
template$<$typename T$>$ \\
\mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_field}{Field}} serif\+::utils\+::serialize\+::field (\begin{DoxyParamCaption}\item[{std\+::string}]{name}{, }\item[{const T \&}]{value}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}}
Encode one named field of a component.
\Hypertarget{namespaceserif_1_1utils_1_1serialize_ad1fa896c36b9c32ff4b8bdb8660cba33}\index{serif::utils::serialize@{serif::utils::serialize}!fingerprint@{fingerprint}}
\index{fingerprint@{fingerprint}!serif::utils::serialize@{serif::utils::serialize}}
\doxysubsubsection{\texorpdfstring{fingerprint()}{fingerprint()}}
{\footnotesize\ttfamily \label{namespaceserif_1_1utils_1_1serialize_ad1fa896c36b9c32ff4b8bdb8660cba33}
std\+::string serif\+::utils\+::serialize\+::fingerprint (\begin{DoxyParamCaption}\item[{std\+::string\+\_\+view}]{bytes}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}}
Versioned content identity for accidental corruption and resource matching; not a cryptographic signature.
\Hypertarget{namespaceserif_1_1utils_1_1serialize_a019c595419bddb41b7a05042e2f6d611}\index{serif::utils::serialize@{serif::utils::serialize}!member@{member}}
\index{member@{member}!serif::utils::serialize@{serif::utils::serialize}}
\doxysubsubsection{\texorpdfstring{member()}{member()}}
{\footnotesize\ttfamily \label{namespaceserif_1_1utils_1_1serialize_a019c595419bddb41b7a05042e2f6d611}
template$<$typename T$>$ \\
\mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_member}{Member}}$<$ T $>$ serif\+::utils\+::serialize\+::member (\begin{DoxyParamCaption}\item[{std\+::string\+\_\+view}]{name}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}}
Describe one field to read\+\_\+object without a separate temporary variable.
\Hypertarget{namespaceserif_1_1utils_1_1serialize_a57bf01379dd9f09662f2eca940c2287a}\index{serif::utils::serialize@{serif::utils::serialize}!member\_field@{member\_field}}
\index{member\_field@{member\_field}!serif::utils::serialize@{serif::utils::serialize}}
\doxysubsubsection{\texorpdfstring{member\_field()}{member\_field()}}
{\footnotesize\ttfamily \label{namespaceserif_1_1utils_1_1serialize_a57bf01379dd9f09662f2eca940c2287a}
template$<$typename Owner, typename \mbox{\hyperlink{namespaceserif_1_1utils_1_1serialize_a76d9829ffc510737a78d63b06f115861}{Value}}$>$ \\
auto serif\+::utils\+::serialize\+::member\+\_\+field (\begin{DoxyParamCaption}\item[{std\+::string\+\_\+view}]{name}{, }\item[{\mbox{\hyperlink{namespaceserif_1_1utils_1_1serialize_a76d9829ffc510737a78d63b06f115861}{Value}} Owner\+::\texorpdfstring{$\ast$}{*}}]{pointer}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}, {\ttfamily [constexpr]}}
Deduce a member\textquotesingle{}s stored type from its ordinary C++ declaration.
\Hypertarget{namespaceserif_1_1utils_1_1serialize_ab93715bd271d15568badc8f1d5423271}\index{serif::utils::serialize@{serif::utils::serialize}!named@{named}}
\index{named@{named}!serif::utils::serialize@{serif::utils::serialize}}
\doxysubsubsection{\texorpdfstring{named()}{named()}}
{\footnotesize\ttfamily \label{namespaceserif_1_1utils_1_1serialize_ab93715bd271d15568badc8f1d5423271}
template$<$typename T$>$ \\
\mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_field}{Field}} serif\+::utils\+::serialize\+::named (\begin{DoxyParamCaption}\item[{std\+::string}]{name}{, }\item[{const T \&}]{value}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}}
Assign an explicit top-\/level name, for example when storing two stars in the same archive.
\Hypertarget{namespaceserif_1_1utils_1_1serialize_accd9d8a1543b90311f64896a155c6e1c}\index{serif::utils::serialize@{serif::utils::serialize}!object@{object}}
\index{object@{object}!serif::utils::serialize@{serif::utils::serialize}}
\doxysubsubsection{\texorpdfstring{object()}{object()}}
{\footnotesize\ttfamily \label{namespaceserif_1_1utils_1_1serialize_accd9d8a1543b90311f64896a155c6e1c}
template$<$typename... Fields$>$ \\
\mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_node}{Node}} serif\+::utils\+::serialize\+::object (\begin{DoxyParamCaption}\item[{std\+::string\+\_\+view}]{type}{, }\item[{Fields...}]{fields}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}}
Compose a component from its independently serialized fields.
\Hypertarget{namespaceserif_1_1utils_1_1serialize_ad8a45ed21a6cf9a7ca63582a18526f9b}\index{serif::utils::serialize@{serif::utils::serialize}!pack@{pack}}
\index{pack@{pack}!serif::utils::serialize@{serif::utils::serialize}}
\doxysubsubsection{\texorpdfstring{pack()}{pack()}}
{\footnotesize\ttfamily \label{namespaceserif_1_1utils_1_1serialize_ad8a45ed21a6cf9a7ca63582a18526f9b}
template$<$typename... T$>$ \\
\mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_pack}{Pack}} serif\+::utils\+::serialize\+::pack (\begin{DoxyParamCaption}\item[{const T \&...}]{values}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}}
Capture every supplied component; unregistered nested types remain visible as unsupported entries.
\Hypertarget{namespaceserif_1_1utils_1_1serialize_a21172de2e2f37c8797a238eb0bdaea30}\index{serif::utils::serialize@{serif::utils::serialize}!read\_field@{read\_field}}
\index{read\_field@{read\_field}!serif::utils::serialize@{serif::utils::serialize}}
\doxysubsubsection{\texorpdfstring{read\_field()}{read\_field()}}
{\footnotesize\ttfamily \label{namespaceserif_1_1utils_1_1serialize_a21172de2e2f37c8797a238eb0bdaea30}
template$<$typename T$>$ \\
\mbox{\hyperlink{namespaceserif_1_1utils_1_1serialize_ace9e0af29889a767ef1c95a09a4b7265}{Result}}$<$ T $>$ serif\+::utils\+::serialize\+::read\+\_\+field (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_node}{Node}} \&}]{node}{, }\item[{std\+::string\+\_\+view}]{name}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}}
Read a required field and retain its full path in any diagnostic.
\Hypertarget{namespaceserif_1_1utils_1_1serialize_adb5114bee6aa1ea6612b96babf0ae8c2}\index{serif::utils::serialize@{serif::utils::serialize}!read\_object@{read\_object}}
\index{read\_object@{read\_object}!serif::utils::serialize@{serif::utils::serialize}}
\doxysubsubsection{\texorpdfstring{read\_object()}{read\_object()}}
{\footnotesize\ttfamily \label{namespaceserif_1_1utils_1_1serialize_adb5114bee6aa1ea6612b96babf0ae8c2}
template$<$typename Construct, typename... Members$>$ \\
auto serif\+::utils\+::serialize\+::read\+\_\+object (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_node}{Node}} \&}]{node}{, }\item[{std\+::string\+\_\+view}]{type}{, }\item[{Construct}]{construct}{, }\item[{Members...}]{members}{}\end{DoxyParamCaption}) -\/$>$ \mbox{\hyperlink{namespaceserif_1_1utils_1_1serialize_ace9e0af29889a767ef1c95a09a4b7265}{Result}}$<$std\+::invoke\+\_\+result\+\_\+t$<$Construct, typename Members\+::\+Type...$>$$>$ \hspace{0.3cm}{\ttfamily [nodiscard]}}
Construct a component only after every required field has decoded successfully.
\Hypertarget{namespaceserif_1_1utils_1_1serialize_ad8c80c4dc17552d1b312b26428b20ccd}\index{serif::utils::serialize@{serif::utils::serialize}!restore\_stellar\_model@{restore\_stellar\_model}}
\index{restore\_stellar\_model@{restore\_stellar\_model}!serif::utils::serialize@{serif::utils::serialize}}
\doxysubsubsection{\texorpdfstring{restore\_stellar\_model()}{restore\_stellar\_model()}}
{\footnotesize\ttfamily \label{namespaceserif_1_1utils_1_1serialize_ad8c80c4dc17552d1b312b26428b20ccd}
template$<$typename Original\+Model$>$ \\
\mbox{\hyperlink{namespaceserif_1_1utils_1_1serialize_ace9e0af29889a767ef1c95a09a4b7265}{Result}}$<$ \mbox{\hyperlink{namespaceserif_1_1utils_1_1serialize_af0afd5aacbd77b40205164c3ec2cf423}{Restored\+Stellar\+Model}}$<$ Original\+Model $>$ $>$ serif\+::utils\+::serialize\+::restore\+\_\+stellar\+\_\+model (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_node}{Node}} \&}]{node}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}}
Reconstruct resolved physics; future changes requiring the original callback remain a separate capability.
\Hypertarget{namespaceserif_1_1utils_1_1serialize_a2467d2dec6186bb040f634a1320c279a}\index{serif::utils::serialize@{serif::utils::serialize}!term\_schema@{term\_schema}}
\index{term\_schema@{term\_schema}!serif::utils::serialize@{serif::utils::serialize}}
\doxysubsubsection{\texorpdfstring{term\_schema()}{term\_schema()}}
{\footnotesize\ttfamily \label{namespaceserif_1_1utils_1_1serialize_a2467d2dec6186bb040f634a1320c279a}
template$<$typename Term$>$ \\
\mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_node}{Node}} serif\+::utils\+::serialize\+::term\+\_\+schema (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}}
Expose the physical meaning and FE representation of one compiled coordinate.
\Hypertarget{namespaceserif_1_1utils_1_1serialize_ab00ec68c8966b7783b811342ba3202a5}\index{serif::utils::serialize@{serif::utils::serialize}!validate\_schema@{validate\_schema}}
\index{validate\_schema@{validate\_schema}!serif::utils::serialize@{serif::utils::serialize}}
\doxysubsubsection{\texorpdfstring{validate\_schema()}{validate\_schema()}}
{\footnotesize\ttfamily \label{namespaceserif_1_1utils_1_1serialize_ab00ec68c8966b7783b811342ba3202a5}
\mbox{\hyperlink{namespaceserif_1_1utils_1_1serialize_ace9e0af29889a767ef1c95a09a4b7265}{Result}}$<$ void $>$ serif\+::utils\+::serialize\+::validate\+\_\+schema (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_node}{Node}} \&}]{saved}{, }\item[{const \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_node}{Node}} \&}]{expected}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
A compiled identity must match and must have an explicit persistence registration.
\Hypertarget{namespaceserif_1_1utils_1_1serialize_a53de7b4a0d01bed188ef53fbeb4c3e7e}\index{serif::utils::serialize@{serif::utils::serialize}!write@{write}}
\index{write@{write}!serif::utils::serialize@{serif::utils::serialize}}
\doxysubsubsection{\texorpdfstring{write()}{write()}}
{\footnotesize\ttfamily \label{namespaceserif_1_1utils_1_1serialize_a53de7b4a0d01bed188ef53fbeb4c3e7e}
\mbox{\hyperlink{namespaceserif_1_1utils_1_1serialize_ace9e0af29889a767ef1c95a09a4b7265}{Result}}$<$ void $>$ serif\+::utils\+::serialize\+::write (\begin{DoxyParamCaption}\item[{const std\+::filesystem\+::path \&}]{path}{, }\item[{const \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_pack}{Pack}} \&}]{contents}{, }\item[{const \mbox{\hyperlink{structserif_1_1utils_1_1serialize_1_1_write_options}{Write\+Options}} \&}]{options}{ = {\ttfamily \{\}}}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}}
Write a complete temporary file and atomically replace the destination only after it closes successfully.