Enum fluent_syntax::ast::Entry[][src]

pub enum Entry<S> {
    Message(Message<S>),
    Term(Term<S>),
    Comment(Comment<S>),
    GroupComment(Comment<S>),
    ResourceComment(Comment<S>),
    Junk {
        content: S,
    },
}

A top-level node representing an entry of a Resource.

Every Entry is a standalone element and the parser is capable of recovering from errors by identifying a beginning of a next entry.

Example

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

let ftl = r#"

key = Value

"#;

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::TextElement {
                                value: "Value"
                            },
                        ]
                    }),
                    attributes: vec![],
                    comment: None,
                }
            )
        ]
    }
);

Junk Entry

If FTL source contains invalid FTL content, it will be preserved in form of Entry::Junk nodes.

Example

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

let ftl = r#"

g@rb@ge En!ry

"#;

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

assert_eq!(
    resource,
    ast::Resource {
        body: vec![
            ast::Entry::Junk {
                content: "g@rb@ge En!ry\n\n"
            }
        ]
    }
);

Variants

Message(Message<S>)
Term(Term<S>)
Comment(Comment<S>)
GroupComment(Comment<S>)
ResourceComment(Comment<S>)
Junk

Fields of Junk

content: S

Trait Implementations

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

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

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

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

Auto Trait Implementations

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

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

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

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

impl<S> UnwindSafe for Entry<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.