jellyflow_runtime/runtime/selection/
store.rs1use crate::runtime::store::NodeGraphStore;
2
3use super::compute::resolve_selection_box;
4use super::types::{SelectionBoxDecision, SelectionBoxInput, SelectionBoxResult};
5
6impl SelectionBoxDecision {
7 pub fn apply_to_store(self, store: &mut NodeGraphStore) -> SelectionBoxResult {
8 let result = self.into_result();
9 store.set_selection(
10 result.nodes.clone(),
11 result.edges.clone(),
12 result.groups.clone(),
13 );
14 result
15 }
16}
17
18impl NodeGraphStore {
19 pub fn apply_selection_box(&mut self, input: SelectionBoxInput) -> SelectionBoxResult {
21 let interaction = self.resolved_interaction_state();
22 let decision = resolve_selection_box(
23 self.graph(),
24 self.lookups(),
25 self.view_state(),
26 &interaction,
27 input,
28 );
29 decision.apply_to_store(self)
30 }
31}