mirror of
https://github.com/GraphiteEditor/Graphite.git
synced 2026-09-15 22:28:10 +08:00
* Move Vec<String> to Table<String> * Remove old VecDVec2 * Move Vec<u8> to Table<u8> * Move Vec<f64> to Table<f64> * Move [f64; 4] to Table<f64> * Move Vec<NodeId> to Table<NodeId> * Tidy up the TaggedValue variants * Move Vec<BrushStroke> to Table<BrushStroke> * Add missing type implementations * Fix tests ---------
26 lines
821 B
Rust
26 lines
821 B
Rust
pub mod brush;
|
|
pub mod brush_cache;
|
|
pub mod brush_stroke;
|
|
|
|
pub mod migrations {
|
|
use crate::brush_stroke::BrushStroke;
|
|
use core_types::table::{Table, TableRow};
|
|
|
|
// TODO: Eventually remove this migration document upgrade code
|
|
pub fn migrate_brush_strokes_to_table<'de, D: serde::Deserializer<'de>>(deserializer: D) -> Result<Table<BrushStroke>, D::Error> {
|
|
use serde::Deserialize;
|
|
|
|
#[derive(serde::Serialize, serde::Deserialize)]
|
|
#[serde(untagged)]
|
|
enum BrushStrokeTableFormat {
|
|
BrushStrokes(Vec<BrushStroke>),
|
|
BrushStrokeTable(Table<BrushStroke>),
|
|
}
|
|
|
|
Ok(match BrushStrokeTableFormat::deserialize(deserializer)? {
|
|
BrushStrokeTableFormat::BrushStrokes(strokes) => strokes.into_iter().map(TableRow::new_from_element).collect(),
|
|
BrushStrokeTableFormat::BrushStrokeTable(table) => table,
|
|
})
|
|
}
|
|
}
|