Struct fluent_syntax::ast::CallArguments[][src]

pub struct CallArguments<S> {
    pub positional: Vec<InlineExpression<S>>,
    pub named: Vec<NamedArgument<S>>,
}

List of arguments for a FunctionReference or a TermReference.

Function and Term reference may contain a list of positional and named arguments passed to them.

Example

use fluent_syntax::parser;
use fluent_syntax::ast;

let ftl = r#"

key = { FUNC($var1, "literal", style: "long") }

"#;

let resource = parser::parse(ftl)
    .expect("Failed to parse an FTL resource.");

assert_eq!(
    resource,
    ast::Resource {
        body: vec![
            ast::Entry::Message(
                ast::Message {
                    id: ast::Identifier {
                        name: "key"
                    },
                    value: Some(ast::Pattern {
                        elements: vec![
                            ast::PatternElement::Placeable {
                                expression: ast::Expression::Inline(
                                    ast::InlineExpression::FunctionReference {
                                        id: ast::Identifier {
                                            name: "FUNC"
                                        },
                                        arguments: ast::CallArguments {
                                            positional: vec![
                                                ast::InlineExpression::VariableReference {
                                                    id: ast::Identifier {
                                                        name: "var1"
                                                    }
                                                },
                                                ast::InlineExpression::StringLiteral {
                                                    value: "literal",
                                                }
                                            ],
                                            named: vec![
                                                ast::NamedArgument {
                                                    name: ast::Identifier {
                                                        name: "style"
                                                    },
                                                    value: ast::InlineExpression::StringLiteral
                                                    {
                                                        value: "long"
                                                    }
                                                }
                                            ],
                                        }
                                    }
                                )
                            },
                        ]
                    }),
                    attributes: vec![],
                    comment: None,
                }
            )
        ]
    }
);

Fields

positional: Vec<InlineExpression<S>>named: Vec<NamedArgument<S>>

Trait Implementations

impl<S: Clone> Clone for CallArguments<S>[src]

impl<S: Debug> Debug for CallArguments<S>[src]

impl<S: Default> Default for CallArguments<S>[src]

impl<S: PartialEq> PartialEq<CallArguments<S>> for CallArguments<S>[src]

impl<S> StructuralPartialEq for CallArguments<S>[src]

Auto Trait Implementations

impl<S> RefUnwindSafe for CallArguments<S> where
    S: RefUnwindSafe
[src]

impl<S> Send for CallArguments<S> where
    S: Send
[src]

impl<S> Sync for CallArguments<S> where
    S: Sync
[src]

impl<S> Unpin for CallArguments<S> where
    S: Unpin
[src]

impl<S> UnwindSafe for CallArguments<S> where
    S: UnwindSafe
[src]

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.