Node

Struct Node 

Source
pub struct Node<'a, T> {
    pub id: NodeId,
    pub span: Span,
    pub parent: Cell<Option<&'a dyn AnyNode<'a>>>,
    pub order: Cell<usize>,
    pub data: T,
}
Expand description

Common denominator across all AST nodes.

Fields§

§id: NodeId

Unique ID assigned to the node.

§span: Span

Full span the node covers in the input.

§parent: Cell<Option<&'a dyn AnyNode<'a>>>

Parent node.

§order: Cell<usize>

Lexical order of the node.

§data: T

Per-node data.

Implementations§

Source§

impl<'a, T> Node<'a, T>

Source

pub fn new(span: Span, data: T) -> Self

Create a new AST node.

Source§

impl<'a> Node<'a, TypeData<'a>>

Source

pub fn is_implicit(&self) -> bool

Check if this is an implicit type.

Source§

impl<'a> Node<'a, TypeKindData<'a>>

Source

pub fn is_implicit(&self) -> bool

Check if this is an implicit type.

Source§

impl<'a> Node<'a, StmtData<'a>>

Source

pub fn new_null(span: Span) -> Stmt<'a>

Source§

impl<'a> Node<'a, InstNameData<'a>>

Source

pub fn inst(&self) -> &'a Inst<'a>

Get the parent instantiation.

Trait Implementations§

Source§

impl<'a, 'b: 'a, T> AcceptVisitor<'a> for Node<'b, T>
where T: AcceptVisitor<'a>,

Source§

fn accept(&'a self, visitor: &mut dyn Visitor<'a>)

Walk a visitor over the contents of self.
Source§

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, CallArgData<'a>>> for Arena<'a>
where 'a: 'arena,

Source§

fn alloc(&'arena self, value: CallArg<'a>) -> &'arena mut CallArg<'a>

Allocate a value of type T.
Source§

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, ClassDeclData<'a>>> for Arena<'a>
where 'a: 'arena,

Source§

fn alloc(&'arena self, value: ClassDecl<'a>) -> &'arena mut ClassDecl<'a>

Allocate a value of type T.
Source§

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, ContAssignData<'a>>> for Arena<'a>
where 'a: 'arena,

Source§

fn alloc(&'arena self, value: ContAssign<'a>) -> &'arena mut ContAssign<'a>

Allocate a value of type T.
Source§

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, DataTypeData<'a>>> for Arena<'a>
where 'a: 'arena,

Source§

fn alloc(&'arena self, value: DataType<'a>) -> &'arena mut DataType<'a>

Allocate a value of type T.
Source§

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, DpiDeclData<'a>>> for Arena<'a>
where 'a: 'arena,

Source§

fn alloc(&'arena self, value: DpiDecl<'a>) -> &'arena mut DpiDecl<'a>

Allocate a value of type T.
Source§

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, EnumData<'a>>> for Arena<'a>
where 'a: 'arena,

Source§

fn alloc(&'arena self, value: Enum<'a>) -> &'arena mut Enum<'a>

Allocate a value of type T.
Source§

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, EnumNameData<'a>>> for Arena<'a>
where 'a: 'arena,

Source§

fn alloc(&'arena self, value: EnumName<'a>) -> &'arena mut EnumName<'a>

Allocate a value of type T.
Source§

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, ExprData<'a>>> for Arena<'a>
where 'a: 'arena,

Source§

fn alloc(&'arena self, value: Expr<'a>) -> &'arena mut Expr<'a>

Allocate a value of type T.
Source§

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, ForeachIndexData>> for Arena<'a>
where 'a: 'arena,

Source§

fn alloc(&'arena self, value: ForeachIndex<'a>) -> &'arena mut ForeachIndex<'a>

Allocate a value of type T.
Source§

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, GenerateBlockData<'a>>> for Arena<'a>
where 'a: 'arena,

Source§

fn alloc( &'arena self, value: GenerateBlock<'a>, ) -> &'arena mut GenerateBlock<'a>

Allocate a value of type T.
Source§

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, GenerateCaseData>> for Arena<'a>
where 'a: 'arena,

Source§

fn alloc(&'arena self, value: GenerateCase<'a>) -> &'arena mut GenerateCase<'a>

Allocate a value of type T.
Source§

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, GenerateForData<'a>>> for Arena<'a>
where 'a: 'arena,

Source§

fn alloc(&'arena self, value: GenerateFor<'a>) -> &'arena mut GenerateFor<'a>

Allocate a value of type T.
Source§

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, GenerateIfData<'a>>> for Arena<'a>
where 'a: 'arena,

Source§

fn alloc(&'arena self, value: GenerateIf<'a>) -> &'arena mut GenerateIf<'a>

Allocate a value of type T.
Source§

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, GenvarDeclData<'a>>> for Arena<'a>
where 'a: 'arena,

Source§

fn alloc(&'arena self, value: GenvarDecl<'a>) -> &'arena mut GenvarDecl<'a>

Allocate a value of type T.
Source§

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, ImplicitDataTypeData<'a>>> for Arena<'a>
where 'a: 'arena,

Source§

fn alloc( &'arena self, value: ImplicitDataType<'a>, ) -> &'arena mut ImplicitDataType<'a>

Allocate a value of type T.
Source§

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, ImportDeclData<'a>>> for Arena<'a>
where 'a: 'arena,

Source§

fn alloc(&'arena self, value: ImportDecl<'a>) -> &'arena mut ImportDecl<'a>

Allocate a value of type T.
Source§

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, ImportItemData>> for Arena<'a>
where 'a: 'arena,

Source§

fn alloc(&'arena self, value: ImportItem<'a>) -> &'arena mut ImportItem<'a>

Allocate a value of type T.
Source§

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, InstData<'a>>> for Arena<'a>
where 'a: 'arena,

Source§

fn alloc(&'arena self, value: Inst<'a>) -> &'arena mut Inst<'a>

Allocate a value of type T.
Source§

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, InstNameData<'a>>> for Arena<'a>
where 'a: 'arena,

Source§

fn alloc(&'arena self, value: InstName<'a>) -> &'arena mut InstName<'a>

Allocate a value of type T.
Source§

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, InterfaceData<'a>>> for Arena<'a>
where 'a: 'arena,

Source§

fn alloc(&'arena self, value: Interface<'a>) -> &'arena mut Interface<'a>

Allocate a value of type T.
Source§

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, ItemData<'a>>> for Arena<'a>
where 'a: 'arena,

Source§

fn alloc(&'arena self, value: Item<'a>) -> &'arena mut Item<'a>

Allocate a value of type T.
Source§

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, ModportData<'a>>> for Arena<'a>
where 'a: 'arena,

Source§

fn alloc(&'arena self, value: Modport<'a>) -> &'arena mut Modport<'a>

Allocate a value of type T.
Source§

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, ModportNameData<'a>>> for Arena<'a>
where 'a: 'arena,

Source§

fn alloc(&'arena self, value: ModportName<'a>) -> &'arena mut ModportName<'a>

Allocate a value of type T.
Source§

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, ModportPortData<'a>>> for Arena<'a>
where 'a: 'arena,

Source§

fn alloc(&'arena self, value: ModportPort<'a>) -> &'arena mut ModportPort<'a>

Allocate a value of type T.
Source§

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, ModportSimplePortData<'a>>> for Arena<'a>
where 'a: 'arena,

Source§

fn alloc( &'arena self, value: ModportSimplePort<'a>, ) -> &'arena mut ModportSimplePort<'a>

Allocate a value of type T.
Source§

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, ModuleData<'a>>> for Arena<'a>
where 'a: 'arena,

Source§

fn alloc(&'arena self, value: Module<'a>) -> &'arena mut Module<'a>

Allocate a value of type T.
Source§

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, NetDeclData<'a>>> for Arena<'a>
where 'a: 'arena,

Source§

fn alloc(&'arena self, value: NetDecl<'a>) -> &'arena mut NetDecl<'a>

Allocate a value of type T.
Source§

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, PackageData<'a>>> for Arena<'a>
where 'a: 'arena,

Source§

fn alloc(&'arena self, value: Package<'a>) -> &'arena mut Package<'a>

Allocate a value of type T.
Source§

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, PackedDimData<'a>>> for Arena<'a>
where 'a: 'arena,

Source§

fn alloc(&'arena self, value: PackedDim<'a>) -> &'arena mut PackedDim<'a>

Allocate a value of type T.
Source§

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, ParamDeclData<'a>>> for Arena<'a>
where 'a: 'arena,

Source§

fn alloc(&'arena self, value: ParamDecl<'a>) -> &'arena mut ParamDecl<'a>

Allocate a value of type T.
Source§

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, ParamTypeDeclData<'a>>> for Arena<'a>
where 'a: 'arena,

Source§

fn alloc( &'arena self, value: ParamTypeDecl<'a>, ) -> &'arena mut ParamTypeDecl<'a>

Allocate a value of type T.
Source§

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, ParamValueDeclData<'a>>> for Arena<'a>
where 'a: 'arena,

Source§

fn alloc( &'arena self, value: ParamValueDecl<'a>, ) -> &'arena mut ParamValueDecl<'a>

Allocate a value of type T.
Source§

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, PathSegmentData<'a>>> for Arena<'a>
where 'a: 'arena,

Source§

fn alloc(&'arena self, value: PathSegment<'a>) -> &'arena mut PathSegment<'a>

Allocate a value of type T.
Source§

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, PatternFieldData<'a>>> for Arena<'a>
where 'a: 'arena,

Source§

fn alloc(&'arena self, value: PatternField<'a>) -> &'arena mut PatternField<'a>

Allocate a value of type T.
Source§

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, PortConnData<'a>>> for Arena<'a>
where 'a: 'arena,

Source§

fn alloc(&'arena self, value: PortConn<'a>) -> &'arena mut PortConn<'a>

Allocate a value of type T.
Source§

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, PortData<'a>>> for Arena<'a>
where 'a: 'arena,

Source§

fn alloc(&'arena self, value: Port<'a>) -> &'arena mut Port<'a>

Allocate a value of type T.
Source§

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, PortDeclData<'a>>> for Arena<'a>
where 'a: 'arena,

Source§

fn alloc(&'arena self, value: PortDecl<'a>) -> &'arena mut PortDecl<'a>

Allocate a value of type T.
Source§

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, ProcedureData<'a>>> for Arena<'a>
where 'a: 'arena,

Source§

fn alloc(&'arena self, value: Procedure<'a>) -> &'arena mut Procedure<'a>

Allocate a value of type T.
Source§

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, RootData<'a>>> for Arena<'a>
where 'a: 'arena,

Source§

fn alloc(&'arena self, value: Root<'a>) -> &'arena mut Root<'a>

Allocate a value of type T.
Source§

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, SourceFileData<'a>>> for Arena<'a>
where 'a: 'arena,

Source§

fn alloc(&'arena self, value: SourceFile<'a>) -> &'arena mut SourceFile<'a>

Allocate a value of type T.
Source§

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, StmtData<'a>>> for Arena<'a>
where 'a: 'arena,

Source§

fn alloc(&'arena self, value: Stmt<'a>) -> &'arena mut Stmt<'a>

Allocate a value of type T.
Source§

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, StructData<'a>>> for Arena<'a>
where 'a: 'arena,

Source§

fn alloc(&'arena self, value: Struct<'a>) -> &'arena mut Struct<'a>

Allocate a value of type T.
Source§

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, StructMemberData<'a>>> for Arena<'a>
where 'a: 'arena,

Source§

fn alloc(&'arena self, value: StructMember<'a>) -> &'arena mut StructMember<'a>

Allocate a value of type T.
Source§

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, SubroutineDeclData<'a>>> for Arena<'a>
where 'a: 'arena,

Source§

fn alloc( &'arena self, value: SubroutineDecl<'a>, ) -> &'arena mut SubroutineDecl<'a>

Allocate a value of type T.
Source§

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, SubroutinePortData<'a>>> for Arena<'a>
where 'a: 'arena,

Source§

fn alloc( &'arena self, value: SubroutinePort<'a>, ) -> &'arena mut SubroutinePort<'a>

Allocate a value of type T.
Source§

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, SubroutinePortDeclData<'a>>> for Arena<'a>
where 'a: 'arena,

Source§

fn alloc( &'arena self, value: SubroutinePortDecl<'a>, ) -> &'arena mut SubroutinePortDecl<'a>

Allocate a value of type T.
Source§

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, SubroutinePrototypeData<'a>>> for Arena<'a>
where 'a: 'arena,

Source§

fn alloc( &'arena self, value: SubroutinePrototype<'a>, ) -> &'arena mut SubroutinePrototype<'a>

Allocate a value of type T.
Source§

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, TypeData<'a>>> for Arena<'a>
where 'a: 'arena,

Source§

fn alloc(&'arena self, value: Type<'a>) -> &'arena mut Type<'a>

Allocate a value of type T.
Source§

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, TypeKindData<'a>>> for Arena<'a>
where 'a: 'arena,

Source§

fn alloc(&'arena self, value: TypeKind<'a>) -> &'arena mut TypeKind<'a>

Allocate a value of type T.
Source§

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, TypedefData<'a>>> for Arena<'a>
where 'a: 'arena,

Source§

fn alloc(&'arena self, value: Typedef<'a>) -> &'arena mut Typedef<'a>

Allocate a value of type T.
Source§

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, UnpackedDimData<'a>>> for Arena<'a>
where 'a: 'arena,

Source§

fn alloc(&'arena self, value: UnpackedDim<'a>) -> &'arena mut UnpackedDim<'a>

Allocate a value of type T.
Source§

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, VarDeclData<'a>>> for Arena<'a>
where 'a: 'arena,

Source§

fn alloc(&'arena self, value: VarDecl<'a>) -> &'arena mut VarDecl<'a>

Allocate a value of type T.
Source§

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, VarDeclNameData<'a>>> for Arena<'a>
where 'a: 'arena,

Source§

fn alloc(&'arena self, value: VarDeclName<'a>) -> &'arena mut VarDeclName<'a>

Allocate a value of type T.
Source§

impl<'arena, 'a> Alloc<'arena, 'arena, Node<'a, VarDimData<'a>>> for Arena<'a>
where 'a: 'arena,

Source§

fn alloc(&'arena self, value: VarDim<'a>) -> &'arena mut VarDim<'a>

Allocate a value of type T.
Source§

impl<'a, T> AnyNode<'a> for Node<'a, T>
where Self: BasicNode<'a> + Display + AnyNodeData, T: Debug + ForEachChild<'a> + Send + Sync,

Automatically implement AnyNode for Node<T> if enough information is present.

Source§

fn id(&self) -> NodeId

Get this node’s unique ID.
Source§

fn span(&self) -> Span

Get this node’s span in the input.
Source§

fn order(&self) -> usize

Get this node’s lexical order.
Source§

fn get_parent(&self) -> Option<&'a dyn AnyNode<'a>>

Get this node’s parent.
Link up this node.
Link up this node as an expansion of another node. Read more
Source§

fn human_span(&self) -> Span

Get a span that is terse and suitable to pinpoint the node for a human.
Source§

fn as_ptr(&self) -> *const u8

Convert this node reference to a pointer for identity comparisons.
Source§

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

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

Source§

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

Get this node’s name, or None if it does not have one.
Source§

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

Describe this node for diagnostics in indefinite form, e.g. “entity”. Read more
Source§

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

Describe this node for diagnostics in definite form, e.g. “entity ‘top’”. Read more
Source§

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

Source§

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

Describe this node for diagnostics in indefinite form, e.g. “entity”.
Source§

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

Describe this node for diagnostics in definite form, e.g. “entity ‘top’”.
Source§

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

Describe this node for diagnostics in indefinite form, e.g. “entity”.
Source§

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

Describe this node for diagnostics in definite form, e.g. “entity ‘top’”.
Source§

impl<'a, T: Clone> Clone for Node<'a, T>

Source§

fn clone(&self) -> Node<'a, T>

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<'a, T> Debug for Node<'a, T>
where Self: BasicNode<'a>, T: Debug,

Allow any node to be debug-formatted.

Source§

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

Formats the value using the given formatter. Read more
Source§

impl<'a, T> Deref for Node<'a, T>

Source§

type Target = T

The resulting type after dereferencing.
Source§

fn deref(&self) -> &T

Dereferences the value.
Source§

impl<'a, T> DerefMut for Node<'a, T>

Source§

fn deref_mut(&mut self) -> &mut T

Mutably dereferences the value.
Source§

impl<'a, T> Display for Node<'a, T>
where T: AnyNodeData,

Allow any node to be printed in diagnostics in a human-friendly form.

Source§

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

Formats the value using the given formatter. Read more
Source§

impl<'a, T> ForEachChild<'a> for Node<'a, T>
where T: ForEachChild<'a>,

Source§

fn for_each_child(&'a self, each: &mut dyn FnMut(&'a dyn AnyNode<'a>))

Apply a function to each child node.
Source§

impl<'a, T> ForEachNode<'a> for Node<'a, T>
where Node<'a, T>: AnyNode<'a>,

Source§

fn for_each_node(&'a self, each: &mut dyn FnMut(&'a dyn AnyNode<'a>))

Apply a function to this node.
Source§

impl<'a> From<&'a Node<'a, CallArgData<'a>>> for AllNode<'a>

Source§

fn from(node: &'a CallArg<'a>) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<&'a Node<'a, ClassDeclData<'a>>> for AllNode<'a>

Source§

fn from(node: &'a ClassDecl<'a>) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<&'a Node<'a, ContAssignData<'a>>> for AllNode<'a>

Source§

fn from(node: &'a ContAssign<'a>) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<&'a Node<'a, DataTypeData<'a>>> for AllNode<'a>

Source§

fn from(node: &'a DataType<'a>) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<&'a Node<'a, DpiDeclData<'a>>> for AllNode<'a>

Source§

fn from(node: &'a DpiDecl<'a>) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<&'a Node<'a, EnumData<'a>>> for AllNode<'a>

Source§

fn from(node: &'a Enum<'a>) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<&'a Node<'a, EnumNameData<'a>>> for AllNode<'a>

Source§

fn from(node: &'a EnumName<'a>) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<&'a Node<'a, ExprData<'a>>> for AllNode<'a>

Source§

fn from(node: &'a Expr<'a>) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<&'a Node<'a, ForeachIndexData>> for AllNode<'a>

Source§

fn from(node: &'a ForeachIndex<'a>) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<&'a Node<'a, GenerateBlockData<'a>>> for AllNode<'a>

Source§

fn from(node: &'a GenerateBlock<'a>) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<&'a Node<'a, GenerateCaseData>> for AllNode<'a>

Source§

fn from(node: &'a GenerateCase<'a>) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<&'a Node<'a, GenerateForData<'a>>> for AllNode<'a>

Source§

fn from(node: &'a GenerateFor<'a>) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<&'a Node<'a, GenerateIfData<'a>>> for AllNode<'a>

Source§

fn from(node: &'a GenerateIf<'a>) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<&'a Node<'a, GenvarDeclData<'a>>> for AllNode<'a>

Source§

fn from(node: &'a GenvarDecl<'a>) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<&'a Node<'a, ImplicitDataTypeData<'a>>> for AllNode<'a>

Source§

fn from(node: &'a ImplicitDataType<'a>) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<&'a Node<'a, ImportDeclData<'a>>> for AllNode<'a>

Source§

fn from(node: &'a ImportDecl<'a>) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<&'a Node<'a, ImportItemData>> for AllNode<'a>

Source§

fn from(node: &'a ImportItem<'a>) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<&'a Node<'a, InstData<'a>>> for AllNode<'a>

Source§

fn from(node: &'a Inst<'a>) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<&'a Node<'a, InstNameData<'a>>> for AllNode<'a>

Source§

fn from(node: &'a InstName<'a>) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<&'a Node<'a, InterfaceData<'a>>> for AllNode<'a>

Source§

fn from(node: &'a Interface<'a>) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<&'a Node<'a, ItemData<'a>>> for AllNode<'a>

Source§

fn from(node: &'a Item<'a>) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<&'a Node<'a, ModportData<'a>>> for AllNode<'a>

Source§

fn from(node: &'a Modport<'a>) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<&'a Node<'a, ModportNameData<'a>>> for AllNode<'a>

Source§

fn from(node: &'a ModportName<'a>) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<&'a Node<'a, ModportPortData<'a>>> for AllNode<'a>

Source§

fn from(node: &'a ModportPort<'a>) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<&'a Node<'a, ModportSimplePortData<'a>>> for AllNode<'a>

Source§

fn from(node: &'a ModportSimplePort<'a>) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<&'a Node<'a, ModuleData<'a>>> for AllNode<'a>

Source§

fn from(node: &'a Module<'a>) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<&'a Node<'a, NetDeclData<'a>>> for AllNode<'a>

Source§

fn from(node: &'a NetDecl<'a>) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<&'a Node<'a, PackageData<'a>>> for AllNode<'a>

Source§

fn from(node: &'a Package<'a>) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<&'a Node<'a, PackedDimData<'a>>> for AllNode<'a>

Source§

fn from(node: &'a PackedDim<'a>) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<&'a Node<'a, ParamDeclData<'a>>> for AllNode<'a>

Source§

fn from(node: &'a ParamDecl<'a>) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<&'a Node<'a, ParamTypeDeclData<'a>>> for AllNode<'a>

Source§

fn from(node: &'a ParamTypeDecl<'a>) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<&'a Node<'a, ParamValueDeclData<'a>>> for AllNode<'a>

Source§

fn from(node: &'a ParamValueDecl<'a>) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<&'a Node<'a, PathSegmentData<'a>>> for AllNode<'a>

Source§

fn from(node: &'a PathSegment<'a>) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<&'a Node<'a, PatternFieldData<'a>>> for AllNode<'a>

Source§

fn from(node: &'a PatternField<'a>) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<&'a Node<'a, PortConnData<'a>>> for AllNode<'a>

Source§

fn from(node: &'a PortConn<'a>) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<&'a Node<'a, PortData<'a>>> for AllNode<'a>

Source§

fn from(node: &'a Port<'a>) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<&'a Node<'a, PortDeclData<'a>>> for AllNode<'a>

Source§

fn from(node: &'a PortDecl<'a>) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<&'a Node<'a, ProcedureData<'a>>> for AllNode<'a>

Source§

fn from(node: &'a Procedure<'a>) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<&'a Node<'a, RootData<'a>>> for AllNode<'a>

Source§

fn from(node: &'a Root<'a>) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<&'a Node<'a, SourceFileData<'a>>> for AllNode<'a>

Source§

fn from(node: &'a SourceFile<'a>) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<&'a Node<'a, StmtData<'a>>> for AllNode<'a>

Source§

fn from(node: &'a Stmt<'a>) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<&'a Node<'a, StructData<'a>>> for AllNode<'a>

Source§

fn from(node: &'a Struct<'a>) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<&'a Node<'a, StructMemberData<'a>>> for AllNode<'a>

Source§

fn from(node: &'a StructMember<'a>) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<&'a Node<'a, SubroutineDeclData<'a>>> for AllNode<'a>

Source§

fn from(node: &'a SubroutineDecl<'a>) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<&'a Node<'a, SubroutinePortData<'a>>> for AllNode<'a>

Source§

fn from(node: &'a SubroutinePort<'a>) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<&'a Node<'a, SubroutinePortDeclData<'a>>> for AllNode<'a>

Source§

fn from(node: &'a SubroutinePortDecl<'a>) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<&'a Node<'a, SubroutinePrototypeData<'a>>> for AllNode<'a>

Source§

fn from(node: &'a SubroutinePrototype<'a>) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<&'a Node<'a, TypeData<'a>>> for AllNode<'a>

Source§

fn from(node: &'a Type<'a>) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<&'a Node<'a, TypeKindData<'a>>> for AllNode<'a>

Source§

fn from(node: &'a TypeKind<'a>) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<&'a Node<'a, TypedefData<'a>>> for AllNode<'a>

Source§

fn from(node: &'a Typedef<'a>) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<&'a Node<'a, UnpackedDimData<'a>>> for AllNode<'a>

Source§

fn from(node: &'a UnpackedDim<'a>) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<&'a Node<'a, VarDeclData<'a>>> for AllNode<'a>

Source§

fn from(node: &'a VarDecl<'a>) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<&'a Node<'a, VarDeclNameData<'a>>> for AllNode<'a>

Source§

fn from(node: &'a VarDeclName<'a>) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<&'a Node<'a, VarDimData<'a>>> for AllNode<'a>

Source§

fn from(node: &'a VarDim<'a>) -> Self

Converts to this type from the input type.
Source§

impl<'a, T> Hash for Node<'a, T>

Source§

fn hash<H: Hasher>(&self, h: &mut H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl<'a, T> PartialEq for Node<'a, T>

Source§

fn eq(&self, other: &Self) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<'a, T> Eq for Node<'a, T>

Source§

impl<'a, T> Send for Node<'a, T>
where T: Send,

Source§

impl<'a, T> Sync for Node<'a, T>
where T: Sync,

Auto Trait Implementations§

§

impl<'a, T> !Freeze for Node<'a, T>

§

impl<'a, T> !RefUnwindSafe for Node<'a, T>

§

impl<'a, T> Unpin for Node<'a, T>
where T: Unpin,

§

impl<'a, T> !UnwindSafe for Node<'a, T>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.