pub struct CompiledPlugin { /* private fields */ }Expand description
A single compiled plugin ready to be wrapped by the RhaiSegment
adapter.
Field visibility is pub(crate) — the registry is the only
factory (compile_plugin is the sole construction site), and
the only consumers live inside this crate. This keeps the
non-empty-id, Status-first-dep, non-reserved-dep invariants the
factory enforces from being silently violated by a third-party
caller that constructs the struct directly.
declared_deps is a raw Vec<DataDep> rather than the
&'static slice the Segment::data_deps contract requires; the
RhaiSegment wrapper does the Vec::leak promotion at segment-
build time so the registry itself doesn’t leak memory on every
reload.
Construction runs the script’s top-level statements once to
extract const ID; plugin authors with side effects at module
scope pay that cost at registry build, not at first render.