\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::vector,\ std::vector>} \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.