Variant
class Variant Import
Source: use macro::{Variant}; compiler/src/prelude/macro.hy One enum variant. shape is "unit", "tuple" (payload in tuple) or "record" (payload in fields).
Fields#
| Field | Type | Description |
|---|---|---|
name | Ident | |
shape | string | |
tuple | Vec<TypeRef> | |
fields | Vec<Field> | |
value | string | Scalar discriminant as written (200, "ok"), or "". |
attrs | Vec<Attr> | |
docs | Vec<string> |
Methods#
| Name | Description |
|---|---|
is_unit | |
is_tuple | |
is_record | |
arity | Number 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: Onekey = value(or positionalvalue, withkey == "") 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.