/// A resource containing a list of localization messages. /// /// [`FluentResource`] wraps an [`Abstract Syntax Tree`](../fluent_syntax/ast/index.html) produced by the /// [`parser`](../fluent_syntax/parser/index.html) and provides an access to a list /// of its entries. /// /// A good mental model for a resource is a single FTL file, but in the future /// there's nothing preventing a resource from being stored in a data base, /// pre-parsed format or in some other structured form. /// /// # Example /// /// ``` /// use fluent_bundle::FluentResource; /// /// let source = r#" /// /// hello-world = Hello World! /// /// "#; /// /// let resource = FluentResource::try_new(source.to_string()) /// .expect("Errors encountered while parsing a resource."); /// /// assert_eq!(resource.entries().count(), 1); /// ``` /// /// # Ownership /// /// A resource owns the source string and the AST contains references /// to the slices of the source. #[derive(Debug)] pubstruct FluentResource(InnerFluentResource);
impl FluentResource { /// A fallible constructor of a new [`FluentResource`]. /// /// It takes an encoded `Fluent Translation List` string, parses /// it and stores both, the input string and the AST view of it, /// for runtime use. /// /// # Example /// /// ``` /// use fluent_bundle::FluentResource; /// /// let source = r#" /// /// hello-world = Hello, { $user }! /// /// "#; /// /// let resource = FluentResource::try_new(source.to_string()); /// /// assert!(resource.is_ok()); /// ``` /// /// # Errors /// /// The method will return the resource irrelevant of parse errors /// encountered during parsing of the source, but in case of errors, /// the `Err` variant will contain both the structure and a vector /// of errors. pub fn try_new(source: String) -> Result<Self, (Self, Vec<ParserError>)> { letmut errors = None;
let res = InnerFluentResource::new(source, |source| match parse_runtime(source.as_str()) {
Ok(ast) => ast,
Err((ast, err)) => {
errors = Some(err);
ast
}
});
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.