pub struct VarData {
pub parent: SymbolId,
pub kind: VarKind,
pub line: u32,
pub is_mut: bool,
}Expand description
Variable data (12 bytes) - DOD optimized.
Each variable is identified by its SymbolId (registered via SymbolRegistry::register_var).
The parent symbol and variable name can be retrieved via the SymbolRegistry.
§DOD Design
parent: Reference to containing symbol (function/method/struct)kind: Variable classificationline: Source location for diagnosticsis_mut: Whether binding was declaredlet mut(set by builder fromPurePattern::Ident { is_mut }, used by UnnecessaryClone to suppress FPs on mutable working copies)
Variable’s SymbolId is stored in VarSymbolMapping (VarId ↔ SymbolId).
Fields§
§parent: SymbolIdParent symbol (function, method, struct, etc.) that contains this variable.
kind: VarKindVariable kind (parameter, local, temp, field, etc.).
line: u32Line number where defined (0 = unknown).
is_mut: boolWhether the binding is declared mut (e.g. let mut x = ...).
Trait Implementations§
Source§impl<'de> Deserialize<'de> for VarData
impl<'de> Deserialize<'de> for VarData
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>,
Deserialize this value from the given Serde deserializer. Read more
impl Copy for VarData
impl Eq for VarData
impl StructuralPartialEq for VarData
Auto Trait Implementations§
impl Freeze for VarData
impl RefUnwindSafe for VarData
impl Send for VarData
impl Sync for VarData
impl Unpin for VarData
impl UnsafeUnpin for VarData
impl UnwindSafe for VarData
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
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<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>
Converts
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>
Converts
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