[][src]Trait moore_svlog_syntax::ast::AnyNodeData

pub trait AnyNodeData {
    fn fmt_indefinite(&self, fmt: &mut Formatter<'_>) -> Result;

    fn as_data(&self) -> &dyn AnyNodeData
    where
        Self: Sized
, { ... }
fn get_name(&self) -> Option<Spanned<Name>> { ... }
fn fmt_definite(&self, fmt: &mut Formatter<'_>) -> Result { ... }
fn format_indefinite(&self) -> FormatNodeIndefinite<'_>
    where
        Self: Sized
, { ... }
fn format_definite(&self) -> FormatNodeDefinite<'_>
    where
        Self: Sized
, { ... }
fn to_indefinite_string(&self) -> String
    where
        Self: Sized
, { ... }
fn to_definite_string(&self) -> String
    where
        Self: Sized
, { ... } }

Common details of an AST node.

Required methods

fn fmt_indefinite(&self, fmt: &mut Formatter<'_>) -> Result

Describe this node for diagnostics in indefinite form, e.g. "entity".

This should not include any node name. Generally, we want to describe the kind of node to the user, for example as in "cannot use at this point in the code".

Loading content...

Provided methods

fn as_data(&self) -> &dyn AnyNodeData where
    Self: Sized

fn get_name(&self) -> Option<Spanned<Name>>

Get this node's name, or None if it does not have one.

fn fmt_definite(&self, fmt: &mut Formatter<'_>) -> Result

Describe this node for diagnostics in definite form, e.g. "entity 'top'".

If the node has a name, this should include it. Generally, we want to provide enough information for the user to pinpoint an exact node in their design.

fn format_indefinite(&self) -> FormatNodeIndefinite<'_> where
    Self: Sized

Describe this node for diagnostics in indefinite form, e.g. "entity".

fn format_definite(&self) -> FormatNodeDefinite<'_> where
    Self: Sized

Describe this node for diagnostics in definite form, e.g. "entity 'top'".

fn to_indefinite_string(&self) -> String where
    Self: Sized

Describe this node for diagnostics in indefinite form, e.g. "entity".

fn to_definite_string(&self) -> String where
    Self: Sized

Describe this node for diagnostics in definite form, e.g. "entity 'top'".

Loading content...

Implementors

impl AnyNodeData for ForeachIndexData[src]

impl AnyNodeData for GenerateCaseData[src]

impl AnyNodeData for ImportItemData[src]

impl<'a> AnyNodeData for DataTypeData<'a>[src]

impl<'a> AnyNodeData for DpiDeclData<'a>[src]

impl<'a> AnyNodeData for ExprData<'a>[src]

impl<'a> AnyNodeData for ItemData<'a>[src]

impl<'a> AnyNodeData for ModportPortData<'a>[src]

impl<'a> AnyNodeData for PackedDimData<'a>[src]

impl<'a> AnyNodeData for PathSegmentData<'a>[src]

impl<'a> AnyNodeData for PatternFieldData<'a>[src]

impl<'a> AnyNodeData for PortConnData<'a>[src]

impl<'a> AnyNodeData for PortData<'a>[src]

impl<'a> AnyNodeData for TypeKindData<'a>[src]

impl<'a> AnyNodeData for TypeOrExpr<'a>

impl<'a> AnyNodeData for UnpackedDimData<'a>[src]

impl<'a> AnyNodeData for VarDimData<'a>[src]

impl<'a> AnyNodeData for ClassDeclData<'a>[src]

impl<'a> AnyNodeData for ContAssignData<'a>[src]

impl<'a> AnyNodeData for EnumData<'a>[src]

impl<'a> AnyNodeData for EnumNameData<'a>[src]

impl<'a> AnyNodeData for GenerateBlockData<'a>[src]

impl<'a> AnyNodeData for GenerateForData<'a>[src]

impl<'a> AnyNodeData for GenerateIfData<'a>[src]

impl<'a> AnyNodeData for GenvarDeclData<'a>[src]

impl<'a> AnyNodeData for ImplicitDataTypeData<'a>[src]

impl<'a> AnyNodeData for ImportDeclData<'a>[src]

impl<'a> AnyNodeData for InstData<'a>[src]

impl<'a> AnyNodeData for InstNameData<'a>[src]

impl<'a> AnyNodeData for InterfaceData<'a>[src]

impl<'a> AnyNodeData for ModportData<'a>[src]

impl<'a> AnyNodeData for ModportNameData<'a>[src]

impl<'a> AnyNodeData for ModportSimplePortData<'a>[src]

impl<'a> AnyNodeData for ModuleData<'a>[src]

impl<'a> AnyNodeData for NetDeclData<'a>[src]

impl<'a> AnyNodeData for PackageData<'a>[src]

impl<'a> AnyNodeData for ParamDeclData<'a>[src]

impl<'a> AnyNodeData for ParamTypeDeclData<'a>[src]

impl<'a> AnyNodeData for ParamValueDeclData<'a>[src]

impl<'a> AnyNodeData for PortDeclData<'a>[src]

impl<'a> AnyNodeData for ProcedureData<'a>[src]

impl<'a> AnyNodeData for RootData<'a>[src]

impl<'a> AnyNodeData for SourceFileData<'a>[src]

impl<'a> AnyNodeData for StmtData<'a>[src]

impl<'a> AnyNodeData for StructData<'a>[src]

impl<'a> AnyNodeData for StructMemberData<'a>[src]

impl<'a> AnyNodeData for SubroutineDeclData<'a>[src]

impl<'a> AnyNodeData for SubroutinePortData<'a>[src]

impl<'a> AnyNodeData for SubroutinePrototypeData<'a>[src]

impl<'a> AnyNodeData for TypeData<'a>[src]

impl<'a> AnyNodeData for TypedefData<'a>[src]

impl<'a> AnyNodeData for VarDeclData<'a>[src]

impl<'a> AnyNodeData for VarDeclNameData<'a>[src]

impl<'a, T> AnyNodeData for Node<'a, T> where
    T: AnyNodeData
[src]

Automatically implement AnyNodeData for Node<T> if the inner node implements it.

Loading content...