craft-doc: find tiles by name once per call and decode each hash once

- pcraft_layer_rgba builds a name-to-entry map of the bundle once per
  call instead of walking the central directory for every tile.
- A tile that several references name is read, decoded and counted
  against max_total once per call. A hash referenced at two pixel sizes
  is malformed.
- Surfaces stored as RGB or grayscale are read in documents of every
  mode, so bitmap, duotone, indexed and multichannel documents read. A
  CMYK or Lab layer or mask gives Unsupported, and an RGB mask gives its
  first channel.
- A canvas of zero width or height is malformed.
- The docs name video layers, the masks of layers without pixels, and
  tile references counting against max_items.
- doc.yml runs the tests without features again, next to
  --all-features.
This commit is contained in:
dotCooCoo committed 2026-11-02 18:30:41 -08:00
1 parent 3798d807de
commit a5d321af47
5 files changed
+262 -62

No files matched your search

+1
View File
@@ -31,5 +31,6 @@ jobs:
- run: cargo fmt --check
- run: cargo clippy -p craft-doc --all-targets --locked -- -D warnings
- run: cargo clippy -p craft-doc --all-targets --all-features --locked -- -D warnings
- run: cargo test -p craft-doc --locked -- --nocapture
- run: cargo test -p craft-doc --all-features --locked -- --nocapture
- run: cargo check -p craft-doc --all-features --locked --target wasm32-unknown-unknown