pub enum DataTypeData<'a> {
    Int {
        ty: Spanned<IntType>,
        signing: Option<TypeSign>,
        packed_dims: Vec<PackedDim<'a>>,
    },
    Real(RealType),
    Struct {
        def: Struct<'a>,
        packed_dims: Vec<PackedDim<'a>>,
    },
    Enum {
        def: Enum<'a>,
        packed_dims: Vec<PackedDim<'a>>,
    },
    String,
    Chandle,
    Named {
        path: Vec<PathSegment<'a>>,
        packed_dims: Vec<PackedDim<'a>>,
    },
    Event,
    TypeRef(Box<TypeOrExpr<'a>>),
}
Expand description

A data type.

From §A.2.2.1 (extended to be context-free):

data_type ::=
    integer_vector_type signing? packed_dimension*
    integer_atom_type signing?
    non_integer_type
    ("struct"|"union") ("packed" signing?)? "{" struct_union_member+ "}" packed_dimension*
    "enum" enum_base_type? "{" enum_name_declaration ("," enum_name_declaration)* "}" packed_dimension*
    "string"
    "chandle"
    path_segment ("::" path_segment)* packed_dimension*
    "event"
    type_reference

path_segment ::=
    "$unit"
    package_identifier
    class_identifier (param_value_assignment)?
    type_identifier

Variants

Int

Fields

signing: Option<TypeSign>
packed_dims: Vec<PackedDim<'a>>

An integer type, like bit, logic signed, reg signed [42:0], int, or int unsigned.

Real(RealType)

A real type.

Struct

Fields

def: Struct<'a>
packed_dims: Vec<PackedDim<'a>>

A struct or union type.

Enum

Fields

def: Enum<'a>
packed_dims: Vec<PackedDim<'a>>

An enum type.

String

A string.

Chandle

A chandle.

Named

Fields

path: Vec<PathSegment<'a>>
packed_dims: Vec<PackedDim<'a>>

A named type.

Event

An event.

TypeRef(Box<TypeOrExpr<'a>>)

A type reference, like type(<type>) or type(<expr>).

Trait Implementations

Walk a visitor over the contents of self.

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

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

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

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

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

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

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

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

Apply a function to each child node.

Apply a function to this node.

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

Performs the conversion.

The resulting type after obtaining ownership.

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

🔬 This is a nightly-only experimental API. (toowned_clone_into)

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

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.