use crate::{layers::style, LayerId}; use serde::{Deserialize, Serialize}; #[repr(C)] #[derive(Debug, Clone, PartialEq, Deserialize, Serialize)] pub enum Operation { AddEllipse { path: Vec, insert_index: isize, transform: [f64; 6], style: style::PathStyle, }, AddRect { path: Vec, insert_index: isize, transform: [f64; 6], style: style::PathStyle, }, AddLine { path: Vec, insert_index: isize, transform: [f64; 6], style: style::PathStyle, }, AddPen { path: Vec, transform: [f64; 6], insert_index: isize, points: Vec<(f64, f64)>, style: style::PathStyle, }, AddShape { path: Vec, insert_index: isize, transform: [f64; 6], equal_sides: bool, sides: u8, style: style::PathStyle, }, DeleteLayer { path: Vec, }, DuplicateLayer { path: Vec, }, AddFolder { path: Vec, }, MountWorkingFolder { path: Vec, }, TransformLayer { path: Vec, transform: [f64; 6], }, DiscardWorkingFolder, ClearWorkingFolder, CommitTransaction, ToggleVisibility { path: Vec, }, }