pub struct AssemblySync {
pub components: Vec<ComponentSnapshot>,
pub state: Value,
pub statuses: Value,
pub dof: Value,
pub overlay: Value,
pub parts_library: Option<PartsLibraryMap>,
}Expand description
Everything the main thread needs from the run’s ASSEMBLY tail, read on the runner right after the run and shipped in the reply.
The kernel’s assembly session — the post-solve constraint state, its
per-constraint statuses, the DOF summary and the overlay geometry — is
thread-local to whoever ran execute_history. Before this the main thread
obtained them by executing the whole history a SECOND time
(sync_assembly), which on a document with a wire harness swept every
bundle twice per edit. It reads them from here instead; the only main-side
replay left is the one a constraint MUTATION needs, because that solve runs
against resident geometry on the thread that asks (see
EngineState::ensure_assembly_session).
None for a componentless document: nothing here is read and the reads cost
nothing.
Fields§
§components: Vec<ComponentSnapshot>The scene’s component set in deterministic id order — the same fold
(removed unmaps, components inserts) the scene build honours.
state: ValueThe post-solve assembly block ({constraints, idCounter}), which the
applier folds back into the document — the pose-authority write-back’s
state half (the pose/isFixed half rides
RunOutput::assembly_poses/RunOutput::assembly_fixed).
statuses: ValuePer-constraint status rows for the constraints panel.
dof: ValueThe solve’s DOF / diagnostics summary.
overlay: ValuePer-constraint overlay rows (world anchors/directions/status/value).
parts_library: Option<PartsLibraryMap>The runner’s parts-library store, shipped ONLY when the run itself moved
it — the ACOMP self-heal and the orphan GC are library mutations and the
main side has no other way to see them. Omitted (None) otherwise: it
carries every embedded part payload, which for an imported STEP assembly
is megabytes.
Trait Implementations§
Source§impl Clone for AssemblySync
impl Clone for AssemblySync
Source§impl Debug for AssemblySync
impl Debug for AssemblySync
Source§impl Default for AssemblySync
impl Default for AssemblySync
Source§impl<'de> Deserialize<'de> for AssemblySync
impl<'de> Deserialize<'de> for AssemblySync
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for AssemblySync
impl RefUnwindSafe for AssemblySync
impl Send for AssemblySync
impl Sync for AssemblySync
impl Unpin for AssemblySync
impl UnsafeUnpin for AssemblySync
impl UnwindSafe for AssemblySync
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more