presolve_compiler/
resume_boot.rs1use crate::application_semantic_model::ApplicationSemanticModel;
2use crate::resume_diagnostics::{validate_resume_instances, ResumeDiagnostic};
3use crate::resume_instance::{build_serializable_instances, SerializableInstance};
4use crate::resume_manifest::{build_resume_manifest, ResumeManifest};
5use crate::resume_plan::build_resume_plan;
6
7#[derive(Debug, Clone, PartialEq, Eq)]
8pub struct ResumeBootPlan {
9 pub manifest: ResumeManifest,
10 pub instances: Vec<SerializableInstance>,
11 pub diagnostics: Vec<ResumeDiagnostic>,
12 pub zero_replay: bool,
13}
14
15#[must_use]
16pub fn build_resume_boot_plan(model: &ApplicationSemanticModel) -> ResumeBootPlan {
17 let plan = build_resume_plan(model);
18 let instances = build_serializable_instances(model);
19 let diagnostics = validate_resume_instances(&plan, &instances);
20 ResumeBootPlan {
21 manifest: build_resume_manifest(model),
22 instances,
23 zero_replay: diagnostics.is_empty(),
24 diagnostics,
25 }
26}