pub enum DeclNode {
FunctionDefinition(FunctionDefinition),
VariableDeclaration(VariableDeclaration),
ContractDefinition(ContractDefinition),
EventDefinition(EventDefinition),
ErrorDefinition(ErrorDefinition),
StructDefinition(StructDefinition),
EnumDefinition(EnumDefinition),
ModifierDefinition(ModifierDefinition),
UserDefinedValueTypeDefinition(UserDefinedValueTypeDefinition),
}Expand description
A reference to any declaration-level AST node.
This enum covers the node types that hover, goto, and references care about: functions, variables, contracts, events, errors, structs, enums, modifiers, and user-defined value types.
Built by extract_decl_nodes and stored in CachedBuild for O(1)
typed node lookup by ID.
Variants§
FunctionDefinition(FunctionDefinition)
VariableDeclaration(VariableDeclaration)
ContractDefinition(ContractDefinition)
EventDefinition(EventDefinition)
ErrorDefinition(ErrorDefinition)
StructDefinition(StructDefinition)
EnumDefinition(EnumDefinition)
ModifierDefinition(ModifierDefinition)
UserDefinedValueTypeDefinition(UserDefinedValueTypeDefinition)
Implementations§
Source§impl DeclNode
impl DeclNode
Sourcepub fn base_functions(&self) -> Option<&[NodeID]>
pub fn base_functions(&self) -> Option<&[NodeID]>
Base functions/modifiers this declaration overrides.
Returns IDs of interface/abstract declarations that this function or modifier implements or overrides.
Sourcepub fn documentation(&self) -> Option<&Documentation>
pub fn documentation(&self) -> Option<&Documentation>
Documentation attached to the declaration.
Sourcepub fn selector(&self) -> Option<&str>
pub fn selector(&self) -> Option<&str>
Function selector (4-byte hex for functions/errors, 32-byte for events).
Sourcepub fn extract_typed_selector(&self) -> Option<Selector>
pub fn extract_typed_selector(&self) -> Option<Selector>
Extract a typed [Selector] from this declaration.
Returns Selector::Func for functions, public variables, and errors,
or Selector::Event for events. Equivalent to extract_selector(&Value).
Sourcepub fn extract_doc_text(&self) -> Option<String>
pub fn extract_doc_text(&self) -> Option<String>
Extract documentation text from this declaration.
Returns the NatSpec text string, equivalent to the raw extract_documentation().
Sourcepub fn build_signature(&self) -> Option<String>
pub fn build_signature(&self) -> Option<String>
Build a Solidity-style signature string for this declaration.
Typed equivalent of build_function_signature(&Value) in hover.rs.
Uses direct field access instead of .get("field").and_then(|v| v.as_str()) chains.
Sourcepub fn param_strings(&self) -> Vec<String>
pub fn param_strings(&self) -> Vec<String>
Build individual parameter strings for signature help.
Returns a vec of strings like ["uint256 amount", "uint16 tax"].
Typed equivalent of build_parameter_strings(&Value) in hover.rs.
Sourcepub fn parameters(&self) -> Option<&ParameterList>
pub fn parameters(&self) -> Option<&ParameterList>
Returns the ParameterList for this declaration’s parameters, if any.
Sourcepub fn return_parameters(&self) -> Option<&ParameterList>
pub fn return_parameters(&self) -> Option<&ParameterList>
Returns the ParameterList for this declaration’s return parameters, if any.
Sourcepub fn node_type(&self) -> &'static str
pub fn node_type(&self) -> &'static str
Returns the node type string, matching the JSON nodeType field.
Sourcepub fn type_string(&self) -> Option<&str>
pub fn type_string(&self) -> Option<&str>
Returns the type description string for this declaration, if available.
Sourcepub fn param_names(&self) -> Option<Vec<String>>
pub fn param_names(&self) -> Option<Vec<String>>
Returns parameter/member names for inlay hint resolution.
For functions, events, errors, modifiers: returns parameters.parameters[].name.
For structs: returns members[].name.
Typed equivalent of get_parameter_names(&Value) in inlay_hints.rs.
Sourcepub fn is_constructor(&self) -> bool
pub fn is_constructor(&self) -> bool
For constructors, returns true if this is a constructor function.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for DeclNode
impl RefUnwindSafe for DeclNode
impl Send for DeclNode
impl Sync for DeclNode
impl Unpin for DeclNode
impl UnsafeUnpin for DeclNode
impl UnwindSafe for DeclNode
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,
Source§impl<T, R> CollectAndApply<T, R> for T
impl<T, R> CollectAndApply<T, R> 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> 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 moreSource§impl<T> Paint for Twhere
T: ?Sized,
impl<T> Paint for Twhere
T: ?Sized,
Source§fn fg(&self, value: Color) -> Painted<&T>
fn fg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the foreground set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like red() and
green(), which have the same functionality but are
pithier.
§Example
Set foreground color to white using fg():
use yansi::{Paint, Color};
painted.fg(Color::White);Set foreground color to white using white().
use yansi::Paint;
painted.white();Source§fn bright_black(&self) -> Painted<&T>
fn bright_black(&self) -> Painted<&T>
Source§fn bright_red(&self) -> Painted<&T>
fn bright_red(&self) -> Painted<&T>
Source§fn bright_green(&self) -> Painted<&T>
fn bright_green(&self) -> Painted<&T>
Source§fn bright_yellow(&self) -> Painted<&T>
fn bright_yellow(&self) -> Painted<&T>
Source§fn bright_blue(&self) -> Painted<&T>
fn bright_blue(&self) -> Painted<&T>
Source§fn bright_magenta(&self) -> Painted<&T>
fn bright_magenta(&self) -> Painted<&T>
Source§fn bright_cyan(&self) -> Painted<&T>
fn bright_cyan(&self) -> Painted<&T>
Source§fn bright_white(&self) -> Painted<&T>
fn bright_white(&self) -> Painted<&T>
Source§fn bg(&self, value: Color) -> Painted<&T>
fn bg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the background set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like on_red() and
on_green(), which have the same functionality but
are pithier.
§Example
Set background color to red using fg():
use yansi::{Paint, Color};
painted.bg(Color::Red);Set background color to red using on_red().
use yansi::Paint;
painted.on_red();Source§fn on_primary(&self) -> Painted<&T>
fn on_primary(&self) -> Painted<&T>
Source§fn on_magenta(&self) -> Painted<&T>
fn on_magenta(&self) -> Painted<&T>
Source§fn on_bright_black(&self) -> Painted<&T>
fn on_bright_black(&self) -> Painted<&T>
Source§fn on_bright_red(&self) -> Painted<&T>
fn on_bright_red(&self) -> Painted<&T>
Source§fn on_bright_green(&self) -> Painted<&T>
fn on_bright_green(&self) -> Painted<&T>
Source§fn on_bright_yellow(&self) -> Painted<&T>
fn on_bright_yellow(&self) -> Painted<&T>
Source§fn on_bright_blue(&self) -> Painted<&T>
fn on_bright_blue(&self) -> Painted<&T>
Source§fn on_bright_magenta(&self) -> Painted<&T>
fn on_bright_magenta(&self) -> Painted<&T>
Source§fn on_bright_cyan(&self) -> Painted<&T>
fn on_bright_cyan(&self) -> Painted<&T>
Source§fn on_bright_white(&self) -> Painted<&T>
fn on_bright_white(&self) -> Painted<&T>
Source§fn attr(&self, value: Attribute) -> Painted<&T>
fn attr(&self, value: Attribute) -> Painted<&T>
Enables the styling Attribute value.
This method should be used rarely. Instead, prefer to use
attribute-specific builder methods like bold() and
underline(), which have the same functionality
but are pithier.
§Example
Make text bold using attr():
use yansi::{Paint, Attribute};
painted.attr(Attribute::Bold);Make text bold using using bold().
use yansi::Paint;
painted.bold();Source§fn rapid_blink(&self) -> Painted<&T>
fn rapid_blink(&self) -> Painted<&T>
Source§fn quirk(&self, value: Quirk) -> Painted<&T>
fn quirk(&self, value: Quirk) -> Painted<&T>
Enables the yansi Quirk value.
This method should be used rarely. Instead, prefer to use quirk-specific
builder methods like mask() and
wrap(), which have the same functionality but are
pithier.
§Example
Enable wrapping using .quirk():
use yansi::{Paint, Quirk};
painted.quirk(Quirk::Wrap);Enable wrapping using wrap().
use yansi::Paint;
painted.wrap();Source§fn clear(&self) -> Painted<&T>
👎Deprecated since 1.0.1: renamed to resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.
fn clear(&self) -> Painted<&T>
resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.Source§fn whenever(&self, value: Condition) -> Painted<&T>
fn whenever(&self, value: Condition) -> Painted<&T>
Conditionally enable styling based on whether the Condition value
applies. Replaces any previous condition.
See the crate level docs for more details.
§Example
Enable styling painted only when both stdout and stderr are TTYs:
use yansi::{Paint, Condition};
painted.red().on_yellow().whenever(Condition::STDOUTERR_ARE_TTY);