presolve_compiler/
resume_instance.rs1use crate::application_semantic_model::ApplicationSemanticModel;
2use crate::component_graph::SerializableValue;
3use crate::semantic_id::SemanticId;
4use serde::Serialize;
5use std::collections::BTreeMap;
6
7#[derive(Debug, Clone, PartialEq, Eq, Serialize)]
8pub struct SerializableInstance {
9 pub component: SemanticId,
10 pub state: BTreeMap<SemanticId, SerializableValue>,
11}
12
13#[must_use]
14pub fn build_serializable_instances(model: &ApplicationSemanticModel) -> Vec<SerializableInstance> {
15 model
16 .components
17 .iter()
18 .map(|component| SerializableInstance {
19 component: component.id.clone(),
20 state: component
21 .state_fields
22 .iter()
23 .filter_map(|field| {
24 field
25 .initial_value
26 .as_ref()
27 .map(|value| (field.id.clone(), value.clone()))
28 })
29 .collect(),
30 })
31 .collect()
32}