#![deny(missing_docs)] use std::collections::HashMap; use serde::{Deserialize, Serialize}; use crate::{ constants, expressions::{ types::Area, utils::{is_valid_column_number, is_valid_row}, }, model::Model, types::{ Alignment, BorderItem, BorderStyle, Cell, Col, HorizontalAlignment, Row, SheetInfo, Style, VerticalAlignment, }, utils::is_valid_hex_color, }; #[derive(Clone, Serialize, Deserialize)] struct RowData { row: Option, data: HashMap, } #[derive(Clone, Serialize, Deserialize)] struct ColumnData { column: Option, data: HashMap, } #[derive(Clone, Serialize, Deserialize)] enum Diff { // Cell diffs SetCellValue { sheet: u32, row: i32, column: i32, new_value: String, old_value: Box>, }, CellClearContents { sheet: u32, row: i32, column: i32, old_value: Box>, }, CellClearAll { sheet: u32, row: i32, column: i32, old_value: Box>, old_style: Box