mirror of
https://github.com/storytold/craft-libs.git
synced 2026-11-12 12:22:47 +00:00
* craft-aep: a flat read-only tree index, borrowed text documents, fewer allocations The container part of storytold/effectcraft#3302: - `TreeIndex`: the chunk tree as one flat array in depth-first order, borrowed from the input, for readers that only look. Same chunks counted against the same limits and the same errors as `parse`. An `.aepx` is indexed by `index_aepx` into one buffer. The typed view reads through either tree (`Node`, `Root`, `Project::from_index`). - Chunk parser: each list of siblings is counted, then reserved once. `.aepx`: hex decoded into an output sized once, attribute values without an entity borrowed. `write` reserves the exact output size. - Text documents are parsed into a tree that borrows from the body; the style and paragraph defaults are built once. - Layer markers and Source Text are read where they are stored instead of searched for. - Container accessors that only tests used are removed. What the importer and exporter in EffectCraft reach across the crate boundary is public here: `Root`, `Draft`, `AepxDrafts`, `index_aepx`, `TreeIndex::from_drafts`, `Project::of`, `ProjectSettings::of`, `Node::marker_list`, `Root::file_version` and `saved_by_version`, `StyleRun::SAMPLED`. `TimeBase::NTSC` holds the rates as plain numerator and denominator instead of an EffectCraft type. * craft-aep: one decoder for an effect parameter definition (`Pard`) The container part of storytold/effectcraft#3319: the fields of a `pard` record (type code, name, default, valid range, slider range, popup item count) are read by one type, `Pard`, which `EffectParam` now reads through. It is public so that an exporter's tests can read back what they encode instead of keeping a second decoder. The rest of that PR (import and export bounds, loss reports) is in EffectCraft's importer and exporter. --------- Co-authored-by: vangel76 <vangel1976@googlemail.com>
31 lines
459 B
Rust
31 lines
459 B
Rust
//! container tests of craft-aep.
|
|
|
|
#[macro_use]
|
|
mod helpers;
|
|
|
|
mod aepx;
|
|
mod batch3_core;
|
|
mod batch3_objects;
|
|
mod batch5;
|
|
mod cases_600;
|
|
mod ease_round2;
|
|
mod effects;
|
|
mod effects_batch4;
|
|
mod effects_batch5;
|
|
mod effects_exposure;
|
|
mod header;
|
|
mod keyframes;
|
|
mod layer_switches;
|
|
mod masks;
|
|
mod matte;
|
|
mod odd_cases;
|
|
mod robustness;
|
|
mod roundtrip;
|
|
mod shapes;
|
|
mod text_fields;
|
|
mod text_markers_footage;
|
|
mod text_style_slots;
|
|
mod tree_index;
|
|
mod typed;
|
|
mod values;
|