pub struct HistoryRequest {Show 13 fields
pub expressions: String,
pub configurator: Value,
pub features: Vec<FeatureDescriptor>,
pub stop_at_id: Option<String>,
pub stop_before_id: Option<String>,
pub assembly: Option<AssemblyState>,
pub wire_harness: Option<WireHarnessState>,
pub pmi: Option<PmiState>,
pub display_lod: f64,
pub parts_library: PartsLibraryMap,
pub ports: Vec<PortDeclaration>,
pub port_boundary: Option<bool>,
pub pcb_present: bool,
}Expand description
The execute_history_json request: the expression source, the configurator
state, and the ordered feature list. Permissive — a whole saved part file
parses as a request (extra top-level fields ignored).
Fields§
§expressions: String§configurator: Value§features: Vec<FeatureDescriptor>§stop_at_id: Option<String>Stop AFTER executing the feature with this id (the editor’s “stop at the expanded feature”). The features past the stop stay in the request so the incremental cache RETAINS their entries — expanding/collapsing a panel must not thrash the cache (marshal-side truncation would free them).
stop_before_id: Option<String>Stop BEFORE executing the feature with this id.
assembly: Option<AssemblyState>The assembly constraint block (spec §7): { constraints, idCounter }.
Absent on every non-assembly document (and omitted on re-serialize, so
componentless files persist byte-identically). Solved at the tail of
every run; see assembly.rs.
wire_harness: Option<WireHarnessState>The wire-harness block: { connections, idCounter, buildBundles }.
Absent on every document without harness connections (and omitted on
re-serialize). Routed at the tail of every run; see wire_harness.rs.
pmi: Option<PmiState>The PMI block: { views: [{ id, name, camera, display, annotations }], idCounter }. Absent on every document without PMI (and omitted on
re-serialize). Resolved at the tail of every run; see pmi.rs.
display_lod: f64Render level-of-detail factor for DISPLAY tessellation (the app’s “LOD
factor” setting). execute_history ignores it — it rides on the request
only because the request is the serialized run boundary the display runner
receives, and the runner scales its per-solid chord tolerance by it
(higher = coarser mesh). Defaults to 1.0 (the “Normal” preset) so a saved
file / seed request with no displayLod tessellates exactly as before.
parts_library: PartsLibraryMapThe parts library block (assemblies build-spec §2.1): unique part
payloads the ACOMP instance features reference by name. Ingested into
the kernel-resident library at the start of every run (this is how a
LOADED document seeds it); SAVE serializes parts_library_json() back
out — never this loaded block (see parts_library.rs).
ports: Vec<PortDeclaration>The declared-ports block: the part’s connection points as DATA, a
sibling of features (see ports.rs). Absent on every document that
declares none (and omitted on re-serialize). Resolved at the tail of
every run, against the finished scene.
port_boundary: Option<bool>The EXPLICIT encapsulation mark: true hides this document’s children
behind its declared ports, false keeps them reachable. Absent means
derive it — see ports::document_is_boundary.
pcb_present: boolWhether the document carries a pcb block, which makes it a board and
therefore a port boundary by construction. Presence ONLY: the block
itself is eCAD’s and the kernel neither reads nor rewrites it, so this
never serializes back out.