Type Alias TypedPattern

Source
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

Fields

§location: Span
§value: String
§base: Base
§

ByteArray

Fields

§location: Span
§value: Vec<u8>
§preferred_format: ByteArrayFormatPreference
§

Var

The creation of a variable. e.g. expect [this_is_a_var, .._] = x e.g. let foo = 42

Fields

§location: Span
§name: String
§

Assign

A name given to a sub-pattern using the as keyword.

when foo is {
   [_, _] as the_list -> ...
}

Fields

§name: String
§location: Span
§

Discard

A pattern that binds to any value but does not assign a variable. Always starts with an underscore.

Fields

§name: String
§location: Span
§

List

§

Constructor

The constructor for a custom type. Starts with an uppercase letter.

Fields

§is_record: bool
§location: Span
§name: String
§module: Option<String>
§spread_location: Option<Span>
§tipo: Rc<Type>
§

Pair

§

Tuple

Fields

§location: Span

Implementations§

Source§

impl TypedPattern

Source

pub fn var(name: &str) -> Self

Source

pub fn constructor( name: &str, arguments: &[CallArg<TypedPattern>], tipo: Rc<Type>, location: Span, ) -> Self

Source

pub fn mint_purpose( (var_purpose_arg, purpose_span): (&str, Span), redeemer_span: Span, ) -> Self

Source

pub fn spend_purpose( (var_purpose_arg, purpose_span): (&str, Span), (var_datum, datum_span): (&str, Span), redeemer_span: Span, ) -> Self

Source

pub fn withdraw_purpose( (var_purpose_arg, purpose_span): (&str, Span), redeemer_span: Span, ) -> Self

Source

pub fn publish_purpose( (var_purpose_arg, purpose_span): (&str, Span), redeemer_span: Span, ) -> Self

Source

pub fn vote_purpose( (var_purpose_arg, purpose_span): (&str, Span), redeemer_span: Span, ) -> Self

Source

pub fn propose_purpose( (var_purpose_arg, purpose_span): (&str, Span), redeemer_span: Span, ) -> Self

Source§

impl TypedPattern

Source

pub fn find_node<'a>( &'a self, byte_index: usize, value: &Rc<Type>, ) -> Option<Located<'a>>

Source

pub fn tipo(&self, value: &TypedExpr) -> Option<Rc<Type>>