vectorcraft/crates/effects/src
arhammusheer 5beac4f122 #1244: smaller objects: Node 352 -> 152 bytes, NodeKind 200 -> 80, and a cheaper undo estimate
Rarely set fields move into one optional boxed NodeExtras, and large NodeKind payloads (images,
live shapes, blends, envelopes) are boxed. Every object, and every undo step that copies it,
shrinks: a 50k-path move keeps ~24.5 MB per step instead of ~40 MB. Files stay byte-identical
(Node keeps its flat JSON through a borrowed Serialize and a from-wire Deserialize, no flatten),
and loading is slightly faster. Undo and redo reuse their step's size estimate instead of
walking the document again (8.3 -> 5.6 ms for a 50k-path move).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VmMmc1J8XeNLxhRihWv9cc

# Conflicts:
#	crates/engine/src/cmd/graph.rs
#	crates/svg/src/export.rs
2026-10-12 11:02:32 +07:00
..
pixel G2: add Artistic Film Grain live effect 2026-10-12 07:26:05 +07:00
stroke M14.4: tests main gained follow the no-panic lint rules 2026-10-05 06:40:34 +07:00
adjust.rs Fix #122: colour adjustment live effects (Effect > Color Adjustments) 2026-10-06 00:42:26 +07:00
bake.rs #1244: smaller objects: Node 352 -> 152 bytes, NodeKind 200 -> 80, and a cheaper undo estimate 2026-10-12 11:02:32 +07:00
clip.rs M3.26: clipping sets with any clip shape 2026-10-04 17:23:57 +07:00
distort.rs Part of #885: the Transform effect's dialog takes Transform Each's controls 2026-10-10 14:32:10 +07:00
group.rs Part of #885: the Transform effect's dialog takes Transform Each's controls 2026-10-10 14:32:10 +07:00
lib.rs G2: add Artistic Film Grain live effect 2026-10-12 07:26:05 +07:00
live.rs M8.16: Envelopes bend images, symbols, gradients, patterns and appearance; warps keep their frame 2026-10-06 12:01:47 +07:00
marks.rs #1244: smaller objects: Node 352 -> 152 bytes, NodeKind 200 -> 80, and a cheaper undo estimate 2026-10-12 11:02:32 +07:00
raster.rs Fix #827: shadows and glows keep their blend modes in PDF 2026-10-10 10:28:04 +07:00
reshape.rs #1244: smaller objects: Node 352 -> 152 bytes, NodeKind 200 -> 80, and a cheaper undo estimate 2026-10-12 11:02:32 +07:00
revolve.rs #1172: share an object's appearance with its undo history until it changes 2026-10-11 23:27:21 +07:00
stroke.rs M3.83: gradients within, along or across a stroke 2026-10-05 05:47:54 +07:00
stylize.rs clippy: as_chunks for fixed-size pixel and pair chunks (Rust 1.99 lint was red on main) 2026-10-05 06:24:06 +07:00
tests.rs Part of #885: the Transform effect's dialog takes Transform Each's controls 2026-10-10 14:32:10 +07:00
tests_scale.rs M3.66: Scale Strokes & Effects scales dashes and effect distances; Scale Corners works 2026-10-05 03:59:37 +07:00
util.rs Rename DrawCraft → VectorCraft: crates (vectorcraft-*), apps, binaries, types, env vars, docs, examples (.vectorcraft); old .drawcraft files and preferences still load. Fix: text bounds exact after opening a file; selection no longer marks a document modified (dirty = content differs from the saved document). Screenshots and renders regenerated. 2026-10-01 14:30:09 -04:00
warp.rs Rename DrawCraft → VectorCraft: crates (vectorcraft-*), apps, binaries, types, env vars, docs, examples (.vectorcraft); old .drawcraft files and preferences still load. Fix: text bounds exact after opening a file; selection no longer marks a document modified (dirty = content differs from the saved document). Screenshots and renders regenerated. 2026-10-01 14:30:09 -04:00