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,
},
}
Expand description
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>)
Tuple Fields
0: Message<S>
Term(Term<S>)
Tuple Fields
0: Term<S>
Comment(Comment<S>)
Tuple Fields
0: Comment<S>
GroupComment(Comment<S>)
Tuple Fields
0: Comment<S>
ResourceComment(Comment<S>)
Tuple Fields
0: Comment<S>
Junk
Trait Implementations
Auto Trait Implementations
impl<S> RefUnwindSafe for Entry<S> where
S: RefUnwindSafe,
impl<S> UnwindSafe for Entry<S> where
S: UnwindSafe,
Blanket Implementations
Mutably borrows from an owned value. Read more