pub struct FragRef {Show 16 fields
pub kind: String,
pub name: String,
pub qualified: Option<String>,
pub member: Option<String>,
pub line: usize,
pub namespace: Option<String>,
pub type_arg_count: Option<usize>,
pub generic: bool,
pub receiver_type: Option<String>,
pub arg_count: Option<usize>,
pub receiver_args: Option<Vec<String>>,
pub outer_types: Vec<String>,
pub args: Option<Vec<String>>,
pub receiver_property_owner: Option<String>,
pub receiver_call_owner: Option<String>,
pub receiver_call_member: Option<String>,
}Expand description
Represents FragRef.
Fields§
§kind: StringThe kind value.
name: StringThe name value.
qualified: Option<String>The qualified value.
member: Option<String>The member value.
line: usizeThe line value.
namespace: Option<String>Always serialized, including when null (imports refs) – NOT
skip_serializing_if, unlike qualified/member which are omitted
entirely when absent. See extract.rs’s RefRecord doc comment.
type_arg_count: Option<usize>The type arg count value.
generic: boolType-certainty flag (see extract.rs’s RefRecord). Serialized last and
only when true; an absent key reads back as false, which also makes
an older fragment JSON parse safely.
receiver_type: Option<String>Receiver fact (see extract.rs’s RefRecord). Appended AFTER generic,
and set only when a fact actually fired – so it serializes last and
only when present, and an absent key reads back as “no fact”, the safe
default.
arg_count: Option<usize>The callee arg count (see extract.rs’s RefRecord). Appended AFTER
receiverType, set only when the member access was the callee of an
invocation – so it serializes last and only when present, and an
absent key reads back as “not a call”, which is what keeps a property
read out of the extension tier.
receiver_args: Option<Vec<String>>Receiver generic-arg descriptors (see extract.rs’s RefRecord). Appended
LAST, after argCount, set only when the receiver’s DECLARED type was
generic – an absent key reads back as “not generic”, which is what
makes a generic-vs-non-generic pairing fail to unify.
outer_types: Vec<String>Enclosing-type stack (see extract.rs’s RefRecord). Appended LAST, after
receiverArgs, and set only when non-empty. A Vec rather than an Option
because empty and absent mean the same thing here – a ref at namespace
level and an older cached fragment both read back as “no enclosing
type”, which is what keeps them off the step.
args: Option<Vec<String>>Generic-arg descriptors for a ‘ctor-param’ ref (see extract.rs’s
RefRecord). Appended LAST of all, after outerTypes, and set only when
the parameter’s type was generic.
receiver_property_owner: Option<String>(See extract.rs’s RefRecord.) The type whose PROPERTY the
qualifier’s last segment is, for a two-segment chain whose head the
enclosing scope could type. Appended after args, and never present
alongside receiverType.
receiver_call_owner: Option<String>(See extract.rs’s RefRecord.) The type whose METHOD a
var x = Q.M(...) initializer called, and that method’s name. Appended
LAST of all, always as a pair, and never alongside receiverType: an
absent pair reads back as “no call fact”, which is what leaves the local
taken-but-unknown.
receiver_call_member: Option<String>The receiver call member value.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for FragRef
impl<'de> Deserialize<'de> for FragRef
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>,
impl StructuralPartialEq for FragRef
Auto Trait Implementations§
impl Freeze for FragRef
impl RefUnwindSafe for FragRef
impl Send for FragRef
impl Sync for FragRef
impl Unpin for FragRef
impl UnsafeUnpin for FragRef
impl UnwindSafe for FragRef
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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