Class in macro compiler

Variant

class Variant
Import
use macro::{Variant};
Source: compiler/src/prelude/macro.hy

One enum variant. shape is "unit", "tuple" (payload in tuple) or "record" (payload in fields).

Fields#

FieldTypeDescription
nameIdent
shapestring
tupleVec<TypeRef>
fieldsVec<Field>
valuestringScalar discriminant as written (200, "ok"), or "".
attrsVec<Attr>
docsVec<string>

Methods#

NameDescription
is_unit
is_tuple
is_record
arityNumber of payload values (0 for a unit variant).
has_attr
attr_str

See also#

  • Code: Generated coil source: declarations, an expression, statements or a type.
  • Ident: A name as written in source.
  • Expr: A function-style macro argument as written: f(1), a + b, "text".
  • TypeRef: A type annotation as written (not resolved): Vec<int>, json::Value.
  • AttrArg: One key = value (or positional value, with key == "") attribute argument.
  • Attr: #[name(args)] on a declaration, field or variant.
  • Field: A class field, or a field of a record enum variant.
  • TypeDecl: A class or enum declaration handed to a derive or attribute macro.
↑ ↓ navigate ↵ open