#ifndef FESA_IO_HDF5_HDF5_RESULT_WRITER_H_ #define FESA_IO_HDF5_HDF5_RESULT_WRITER_H_ #include #include #include #include "fesa/analysis/analysis_state.h" #include "fesa/core/diagnostic.h" #include "fesa/core/status.h" #include "fesa/model/domain.h" #include "io/hdf5/hdf5_primitives.h" namespace fesa::hdf5_internal { /// @brief Builds the complete backend-neutral result dataset inventory. Result BuildWriterPlan(const std::filesystem::path& output_path, const Domain& domain, const AnalysisState& state, const std::vector& diagnostics); /// @brief Rejects malformed, duplicate, shape-mismatched, or nonfinite plans. Status ValidateFiniteInventory(const std::vector& datasets); /// @brief Writes mandatory beam/shell/global results and diagnostics. void WriteResults(hid_t file, const Domain& domain, const AnalysisState& state, const std::vector& diagnostics, const WriterPlan& plan); } // namespace fesa::hdf5_internal #endif // FESA_IO_HDF5_HDF5_RESULT_WRITER_H_