Enum fluent_syntax::ast::InlineExpression [−][src]
A subset of expressions which can be used as Placeable
,
selector
, or in CallArguments
.
Example
use fluent_syntax::parser; use fluent_syntax::ast; let ftl = r#" key = { $emailCount } "#; 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::VariableReference { id: ast::Identifier { name: "emailCount" }, } ) }, ] }), attributes: vec![], comment: None, } ) ] } );
Variants
Single line string literal enclosed in "
.
Example
use fluent_syntax::parser; use fluent_syntax::ast; let ftl = r#" key = { "this is a literal" } "#; 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::StringLiteral { value: "this is a literal", } ) }, ] }), attributes: vec![], comment: None, } ) ] } );
A number literal.
Example
use fluent_syntax::parser; use fluent_syntax::ast; let ftl = r#" key = { -0.5 } "#; 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::NumberLiteral { value: "-0.5", } ) }, ] }), attributes: vec![], comment: None, } ) ] } );
A function reference.
Example
use fluent_syntax::parser; use fluent_syntax::ast; let ftl = r#" key = { FUNC() } "#; 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::default(), } ) }, ] }), attributes: vec![], comment: None, } ) ] } );
Fields of FunctionReference
id: Identifier<S>
arguments: CallArguments<S>
A reference to another message.
Example
use fluent_syntax::parser; use fluent_syntax::ast; let ftl = r#" key = { key2 } "#; 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::MessageReference { id: ast::Identifier { name: "key2" }, attribute: None, } ) }, ] }), attributes: vec![], comment: None, } ) ] } );
Fields of MessageReference
id: Identifier<S>
attribute: Option<Identifier<S>>
A reference to a term.
Example
use fluent_syntax::parser; use fluent_syntax::ast; let ftl = r#" key = { -brand-name } "#; 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::TermReference { id: ast::Identifier { name: "brand-name" }, attribute: None, arguments: None, } ) }, ] }), attributes: vec![], comment: None, } ) ] } );
Fields of TermReference
A reference to a variable.
Example
use fluent_syntax::parser; use fluent_syntax::ast; let ftl = r#" key = { $var1 } "#; 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::VariableReference { id: ast::Identifier { name: "var1" }, } ) }, ] }), attributes: vec![], comment: None, } ) ] } );
Fields of VariableReference
id: Identifier<S>
A placeable which may contain another expression.
Example
use fluent_syntax::parser; use fluent_syntax::ast; let ftl = r#" key = { { "placeable" } } "#; 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::Placeable { expression: Box::new( ast::Expression::Inline( ast::InlineExpression::StringLiteral { value: "placeable" } ) ) } ) }, ] }), attributes: vec![], comment: None, } ) ] } );
Fields of Placeable
expression: Box<Expression<S>>
Trait Implementations
impl<S: Clone> Clone for InlineExpression<S>
[src]
fn clone(&self) -> InlineExpression<S>
[src]
pub fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl<S: Debug> Debug for InlineExpression<S>
[src]
impl<S: PartialEq> PartialEq<InlineExpression<S>> for InlineExpression<S>
[src]
fn eq(&self, other: &InlineExpression<S>) -> bool
[src]
fn ne(&self, other: &InlineExpression<S>) -> bool
[src]
impl<S> StructuralPartialEq for InlineExpression<S>
[src]
Auto Trait Implementations
impl<S> RefUnwindSafe for InlineExpression<S> where
S: RefUnwindSafe,
[src]
S: RefUnwindSafe,
impl<S> Send for InlineExpression<S> where
S: Send,
[src]
S: Send,
impl<S> Sync for InlineExpression<S> where
S: Sync,
[src]
S: Sync,
impl<S> Unpin for InlineExpression<S> where
S: Unpin,
[src]
S: Unpin,
impl<S> UnwindSafe for InlineExpression<S> where
S: UnwindSafe,
[src]
S: UnwindSafe,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,