pub struct InputFieldIngredient<K, F> { /* private fields */ }
Expand description

Ingredient used to represent the fields of a #[salsa::input].

These fields can only be mutated by a call to a setter with an &mut reference to the database, and therefore cannot be mutated during a tracked function or in parallel. However for on-demand inputs to work the fields must be able to be set via a shared reference, so some locking is required. Altogether this makes the implementation somewhat simpler than tracked structs.

Implementations

Set the field of a new input.

This function panics if the field has ever been set before.

Trait Implementations

If this ingredient is a participant in a cycle, what is its cycle recovery strategy? (Really only relevant to crate::function::FunctionIngredient, since only function ingredients push themselves onto the active query stack.) Read more
Has the value for input in this ingredient changed after revision?
What were the inputs (if any) that were used to create the value at key_index.
Invoked when the value output_key should be marked as valid in the current revision. This occurs because the value for executor, which generated it, was marked as valid in the current revision. Read more
Invoked when the value stale_output was output by executor in a previous revision, but was NOT output in the current revision. Read more
Informs the ingredient self that the salsa struct with id id has been deleted. This gives self a chance to remove any memoized data dependent on id. To receive this callback, self must register itself as a dependent function using SalsaStructInDb::register_dependent_fn. Read more
Invoked when a new revision is about to start. This moment is important because it means that we have an &mut-reference to the database, and hence any pre-existing &-references must have expired. Many ingredients, given an &'db-reference to the database, use unsafe code to return &'db-references to internal values. The backing memory for those values can only be freed once an &mut-reference to the database is created. Read more
If this is true, then reset_for_new_revision will be called every new revision.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The alignment of pointer.
The type for initializers.
Initializes a with the given initializer. Read more
Dereferences the given pointer. Read more
Mutably dereferences the given pointer. Read more
Drops the object pointed to by the given pointer. Read more
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.