pub struct EngineGeneration(/* private fields */);Expand description
A generation counter that makes the otherwise-untracked runtime engine model invalidate
correctly. The engine model is a leaked &'static side handle (not a salsa input), so a query
memoized while it was still absent (engine() == None, on wasm32 before set_engine_api)
would otherwise return that stale empty result forever. Every engine() read records a
dependency on this input; set_engine_api bumps it, recomputing those queries. The value is
irrelevant — only that setting it advances the revision. Used on wasm32 only (native has the
bundled model from the start, so it never changes — no generation tracking, no overhead).
Implementations§
Source§impl EngineGeneration
impl EngineGeneration
pub fn ingredient(db: &dyn Database) -> &IngredientImpl<Self>
pub fn ingredient_mut( zalsa_mut: &mut Zalsa, ) -> (&mut IngredientImpl<Self>, &mut Runtime)
Source§impl EngineGeneration
impl EngineGeneration
pub fn new<Db_>(db: &Db_, generation: u32) -> Self
pub fn builder(generation: u32) -> <Self as HasBuilder>::Builder
Sourcepub fn generation<'db, Db_>(self, db: &'db Db_) -> u32
pub fn generation<'db, Db_>(self, db: &'db Db_) -> u32
An opaque counter (only its revision matters).
pub fn set_generation<'db, Db_>( self, db: &'db mut Db_, ) -> impl Setter<FieldTy = u32>
Trait Implementations§
Source§impl Clone for EngineGeneration
impl Clone for EngineGeneration
Source§fn clone(&self) -> EngineGeneration
fn clone(&self) -> EngineGeneration
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Configuration for EngineGeneration
impl Configuration for EngineGeneration
const LOCATION: Location
const DEBUG_NAME: &'static str = "EngineGeneration"
const FIELD_DEBUG_NAMES: &'static [&'static str]
Source§type Struct = EngineGeneration
type Struct = EngineGeneration
The input struct (which wraps an
Id)Source§type Durabilities = [Durability; 1]
type Durabilities = [Durability; 1]
Available on non-crate feature
persistence only.Source§fn serialize<S: Serializer>(
fields: &Self::Fields,
serializer: S,
) -> Result<S::Ok, S::Error>
fn serialize<S: Serializer>( fields: &Self::Fields, serializer: S, ) -> Result<S::Ok, S::Error>
Serialize the fields using
serde. Read moreSource§fn deserialize<'de, D: Deserializer<'de>>(
deserializer: D,
) -> Result<Self::Fields, D::Error>
fn deserialize<'de, D: Deserializer<'de>>( deserializer: D, ) -> Result<Self::Fields, D::Error>
Deserialize the fields using
serde. Read moreimpl Copy for EngineGeneration
impl Eq for EngineGeneration
Source§impl HasJar for EngineGeneration
impl HasJar for EngineGeneration
Source§impl Hash for EngineGeneration
impl Hash for EngineGeneration
Source§impl PartialEq for EngineGeneration
impl PartialEq for EngineGeneration
Source§fn eq(&self, other: &EngineGeneration) -> bool
fn eq(&self, other: &EngineGeneration) -> bool
Tests for
self and other values to be equal, and is used by ==.Source§impl SalsaStructInDb for EngineGeneration
impl SalsaStructInDb for EngineGeneration
Source§const LEAF_TYPE_IDS: &'static [ConstTypeId]
const LEAF_TYPE_IDS: &'static [ConstTypeId]
The type IDs of all concrete (leaf) salsa struct types that this type can contain. Read more
type MemoIngredientMap = MemoIngredientSingletonIndex
Source§fn lookup_ingredient_index(aux: &Zalsa) -> IngredientIndices
fn lookup_ingredient_index(aux: &Zalsa) -> IngredientIndices
Lookup or create ingredient indices. Read more
Source§fn entries(zalsa: &Zalsa) -> impl Iterator<Item = DatabaseKeyIndex> + '_
fn entries(zalsa: &Zalsa) -> impl Iterator<Item = DatabaseKeyIndex> + '_
Returns the IDs of any instances of this struct in the database.
impl StructuralPartialEq for EngineGeneration
Source§impl Update for EngineGeneration
impl Update for EngineGeneration
Auto Trait Implementations§
impl Freeze for EngineGeneration
impl RefUnwindSafe for EngineGeneration
impl Send for EngineGeneration
impl Sync for EngineGeneration
impl Unpin for EngineGeneration
impl UnsafeUnpin for EngineGeneration
impl UnwindSafe for EngineGeneration
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.Source§impl<T> HashEqLike<&T> for T
impl<T> HashEqLike<&T> for T
Source§impl<T> HashEqLike<Cow<'_, T>> for T
impl<T> HashEqLike<Cow<'_, T>> for T
Source§impl<T> HashEqLike<T> for T
impl<T> HashEqLike<T> 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> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Returns the layout of the type.
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Returns whether the given value has been niched. Read more
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
Writes data to
out indicating that a T is niched.