Struct srclang::compiler::ir::__ProgramConfig
pub struct __ProgramConfig { /* private fields */ }
Trait Implementations
impl Configuration for __ProgramConfig
type Id = Program
The id type used to define instances of this struct. The TrackedStructIngredient
contains the interner that will create the id values.
type Fields = (Vec<Function>, BTreeMap<Mangled, Symbol>)
A (possibly empty) tuple of the fields for this struct.
type Revisions = [Revision; 2]
A array of Revision
values, one per each of the value fields. When a struct is re-recreated in a new revision, the corresponding entries for each field are updated to the new revision if their values have changed (or if the field is marked as #[no_eq]
).
fn id_fields(fields: &Self::Fields) -> impl Hash
fn revision(revisions: &Self::Revisions, field_index: u32) -> Revision
Access the revision of a given value field.field_index
will be between 0 and the number of value fields.
fn new_revisions(current_revision: Revision) -> Self::Revisions
Create a new value revision array where each element is set to current_revision
.
fn update_revisions( current_revision_: Revision, old_value_: &Self::Fields, new_value_: &Self::Fields, revisions_: &mut Self::Revisions)
Update an existing value revision array revisions
, given the tuple of the old values (old_value
) and the tuple of the values (new_value
). If a value has changed, then its element is updated to current_revision
.
Auto Trait Implementations
impl Freeze for __ProgramConfig
impl RefUnwindSafe for __ProgramConfig
impl Send for __ProgramConfig
impl Sync for __ProgramConfig
impl Unpin for __ProgramConfig
impl UnwindSafe for __ProgramConfig
Blanket Implementations
impl<T> Any for Twhere T: 'static + ?Sized,
fn type_id(&self) -> TypeId
Gets the TypeId
of self
. Read more
impl<T> Borrow<T> for Twhere T: ?Sized,
fn borrow(&self) -> &T
Immutably borrows from an owned value. Read more
impl<T> BorrowMut<T> for Twhere T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<T> From<T> for T
fn from(t: T) -> T
Returns the argument unchanged.
impl<T, U> Into<U> for Twhere U: From<T>,
fn into(self) -> U
Calls U::from(self)
.
That is, this conversion is whatever the implementation of From<T> for U
chooses to do.
impl<T> Pointable for T
const ALIGN: usize = _
The alignment of pointer.
type Init = T
The type for initializers.
unsafe fn init(init: <T as Pointable>::Init) -> usize
Initializes a with the given initializer. Read more
unsafe fn deref<'a>(ptr: usize) -> &'a T
Dereferences the given pointer. Read more
unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T
Mutably dereferences the given pointer. Read more
unsafe fn drop(ptr: usize)
Drops the object pointed to by the given pointer. Read more
impl<T, U> TryFrom<U> for Twhere U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
Performs the conversion.
impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
Performs the conversion.