pub struct UpdateComponents { /* private fields */ }Expand description
The shell-owned outdated-parts checker + batch refresher. One instance on the app; the constraints panel reads the count (and runs the refresh), the structure tree reads per-part flags.
Implementations§
Source§impl UpdateComponents
impl UpdateComponents
pub fn new() -> Self
Sourcepub fn ensure_current(
&mut self,
state: &mut EngineState,
model_store: &dyn ModelStore,
save_generation: u64,
)
pub fn ensure_current( &mut self, state: &mut EngineState, model_store: &dyn ModelStore, save_generation: u64, )
Recompute the outdated/missing sets when the staleness key moved (or
after Self::invalidate); otherwise a cheap compare. The shell calls
this once per frame BEFORE the assembly panels draw.
Sourcepub fn invalidate(&mut self)
pub fn invalidate(&mut self)
Drop the cache so the next Self::ensure_current recomputes even on
an unmoved key (after a run, or an external store change).
Sourcepub fn outdated_count(&self) -> usize
pub fn outdated_count(&self) -> usize
The outdated-entry count — the constraints-header badge number.
Sourcepub fn is_outdated(&self, part_name: &str) -> bool
pub fn is_outdated(&self, part_name: &str) -> bool
Whether part_name’s library entry is outdated — the structure tree’s
per-node badge (every instance of the part lights).
Sourcepub fn run(
&mut self,
state: &mut EngineState,
model_store: &dyn ModelStore,
) -> Result<usize, String>
pub fn run( &mut self, state: &mut EngineState, model_store: &dyn ModelStore, ) -> Result<usize, String>
RUN the update (the header button): recompute against the LIVE document
(never a stale cache), rewrite every outdated entry from its store
content through refresh_library_entry, then reload ONCE — the
kernel self-heals every instance + re-solves, and the main-side sync
captures healed snapshots back. Per-entry failures (missing store key,
unreadable content) toast and SKIP — the batch never aborts. Returns
the number of entries refreshed.
Trait Implementations§
Source§impl Default for UpdateComponents
impl Default for UpdateComponents
Source§fn default() -> UpdateComponents
fn default() -> UpdateComponents
Auto Trait Implementations§
impl Freeze for UpdateComponents
impl RefUnwindSafe for UpdateComponents
impl Send for UpdateComponents
impl Sync for UpdateComponents
impl Unpin for UpdateComponents
impl UnsafeUnpin for UpdateComponents
impl UnwindSafe for UpdateComponents
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> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
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