use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct BlockChange {
pub id: String,
pub name: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct BlockPositionChange {
pub block: BlockChange,
pub current_position: Vec<usize>, pub target_position: Vec<usize>, }
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct InputChange {
pub block_id: String, pub input_name: String, pub expected_value: String, pub actual_value: String, }
#[derive(Debug, Serialize, Deserialize)]
pub struct WorkspaceAdjustments {
pub blocks_to_remove: Vec<BlockChange>,
pub blocks_to_add: Vec<BlockChange>,
pub blocks_to_reposition: Vec<BlockPositionChange>,
pub blocks_with_input_changes: Vec<InputChange>,
}
impl WorkspaceAdjustments {
pub fn new() -> Self {
WorkspaceAdjustments {
blocks_to_remove: Vec::new(),
blocks_to_add: Vec::new(),
blocks_to_reposition: Vec::new(),
blocks_with_input_changes: Vec::new(),
}
}
}