pub type TypedPattern = Pattern<PatternConstructor, Rc<Type>, String, u8>;Aliased Type§
pub enum TypedPattern {
Int {
location: Span,
value: String,
base: Base,
},
ByteArray {
location: Span,
value: Vec<u8>,
preferred_format: ByteArrayFormatPreference,
},
Var {
location: Span,
name: String,
},
Assign {
name: String,
location: Span,
pattern: Box<Pattern<PatternConstructor, Rc<Type>, String, u8>>,
},
Discard {
name: String,
location: Span,
},
List {
location: Span,
elements: Vec<Pattern<PatternConstructor, Rc<Type>, String, u8>>,
tail: Option<Box<Pattern<PatternConstructor, Rc<Type>, String, u8>>>,
},
Constructor {
is_record: bool,
location: Span,
name: String,
arguments: Vec<CallArg<Pattern<PatternConstructor, Rc<Type>, String, u8>>>,
module: Option<String>,
constructor: PatternConstructor,
spread_location: Option<Span>,
tipo: Rc<Type>,
},
Pair {
location: Span,
fst: Box<Pattern<PatternConstructor, Rc<Type>, String, u8>>,
snd: Box<Pattern<PatternConstructor, Rc<Type>, String, u8>>,
},
Tuple {
location: Span,
elems: Vec<Pattern<PatternConstructor, Rc<Type>, String, u8>>,
},
}Variants§
Int
ByteArray
Var
The creation of a variable.
e.g. expect [this_is_a_var, .._] = x
e.g. let foo = 42
Assign
A name given to a sub-pattern using the as keyword.
when foo is {
[_, _] as the_list -> ...
}Discard
A pattern that binds to any value but does not assign a variable. Always starts with an underscore.
List
Fields
Constructor
The constructor for a custom type. Starts with an uppercase letter.
Fields
§
constructor: PatternConstructor