Enum tagua_parser::ast::Arity [] [src]

pub enum Arity<'a> {
    Constant,
    Finite(Vec<Parameter<'a>>),
    Infinite(Vec<Parameter<'a>>),
}

Arity of a function.

Variants

A function with no parameter.

Examples

use tagua_parser::Result;
use tagua_parser::ast::Arity;
use tagua_parser::rules::statements::function::parameters;

assert_eq!(
    parameters(b"()"),
    Result::Done(&b""[..], Arity::Constant)
);Run

A function with a finite number of parameters.

Examples

use tagua_parser::Result;
use tagua_parser::ast::{
    Arity,
    Parameter,
    Ty,
    Variable
};
use tagua_parser::rules::statements::function::parameters;

assert_eq!(
    parameters(b"($x, $y)"),
    Result::Done(
        &b""[..],
        Arity::Finite(vec![
            Parameter {
                ty   : Ty::Copy(None),
                name : Variable(&b"x"[..]),
                value: None
            },
            Parameter {
                ty   : Ty::Copy(None),
                name : Variable(&b"y"[..]),
                value: None
            }
        ])
    )
);Run

A variadic function.

Examples

use tagua_parser::Result;
use tagua_parser::ast::{
    Arity,
    Parameter,
    Ty,
    Variable
};
use tagua_parser::rules::statements::function::parameters;

assert_eq!(
    parameters(b"($x, ...$y)"),
    Result::Done(
        &b""[..],
        Arity::Infinite(vec![
            Parameter {
                ty   : Ty::Copy(None),
                name : Variable(&b"x"[..]),
                value: None
            },
            Parameter {
                ty   : Ty::Copy(None),
                name : Variable(&b"y"[..]),
                value: None
            }
        ])
    )
);Run

Trait Implementations

impl<'a> Debug for Arity<'a>
[src]

Formats the value using the given formatter.

impl<'a> PartialEq for Arity<'a>
[src]

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

This method tests for !=.