cad-editor/docs
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Karim Jerbi 73b05e1dec perf(core): cache ribbon_groups() with OnceLock, avoid per-frame tree allocations
Change CadModule::ribbon_groups() from -> Vec<RibbonGroup> to -> &[RibbonGroup],
backed by a per-module OnceLock cache. The ribbon group tree is static data
(&'static str, Copy enums) that was being fully reconstructed — Vecs, String
clones, enum discriminants — on every call, including all three per-frame
call sites (view(), dropdown_overlay(), style_combo_overlay()).

- 7 built-in modules + 2 plugin templates cache via function-local OnceLock.
  Safe because each is a unit struct with exactly one instance per process
  (plugins run in isolated child processes; see PluginProcess::spawn()).
- SharedCadModule avoids the static pattern entirely, storing groups in an
  instance field (owned.rs).
- IPC runner converts &RibbonGroup -> OwnedRibbonGroup directly via new
  From<&T> impls, avoiding an intermediate clone.
- render_small/render_large and the two make_tool_row closures now borrow
  (&RibbonItem, &[ToolDef]) instead of taking ownership, so the view loop
  doesn't need to clone items to satisfy the old by-value signatures.
- Various match-ergonomics deref fixes (*id, *default, *icon, etc.) from
  the &RibbonItem pattern change.
2026-07-02 21:00:57 +01:00
..
automation feat(automation): local TCP socket transport for --serve 2026-06-18 01:54:03 +03:00
plugin-template Initial commit 2026-06-25 00:01:36 +03:00
plugin-template-v2 perf(core): cache ribbon_groups() with OnceLock, avoid per-frame tree allocations 2026-07-02 21:00:57 +01:00
issue-78-comment.txt Add demo_plugin and plugin host integration tests 2026-06-09 13:52:15 -04:00
issue-78-reply.md Add plugin host architecture and Storm Sewer add-on package 2026-06-09 13:41:21 -04:00
native-vs-web.md docs: document native vs. web (wasm) differences 2026-06-17 04:44:12 +03:00
pane-grid-migration.md docs: plan for migrating model tiles to iced pane_grid 2026-06-18 23:53:52 +03:00
plugin-architecture.md Adding timeout protection to host from stuck runner 2026-06-26 10:10:56 +02:00
PR-plugin-host.md Add demo_plugin and plugin host integration tests 2026-06-09 13:52:15 -04:00
tessellation.md perf(render): batch solid meshes, fix per-pick freezes on heavy 3D models 2026-06-30 22:46:29 +03:00