Struct fluent_bundle::FluentArgs
source · pub struct FluentArgs<'args>(/* private fields */);
Expand description
Fluent messages can use arguments in order to programmatically add values to a translated string. For instance, in a localized application you may wish to display a user’s email count. This could be done with the following message.
msg-key = Hello, { $user }. You have { $emailCount } messages.
Here $user
and $emailCount
are the arguments, which can be filled with values.
The FluentArgs
struct is the map from the argument name (for example $user
) to
the argument value (for example “John”.) The logic to apply these to write these
to messages is elsewhere, this struct just stores the value.
§Example
use fluent_bundle::{FluentArgs, FluentBundle, FluentResource};
let mut args = FluentArgs::new();
args.set("user", "John");
args.set("emailCount", 5);
let res = FluentResource::try_new(r#"
msg-key = Hello, { $user }. You have { $emailCount } messages.
"#.to_string())
.expect("Failed to parse FTL.");
let mut bundle = FluentBundle::default();
// For this example, we'll turn on BiDi support.
// Please, be careful when doing it, it's a risky move.
bundle.set_use_isolating(false);
bundle.add_resource(res)
.expect("Failed to add a resource.");
let mut err = vec![];
let msg = bundle.get_message("msg-key")
.expect("Failed to retrieve a message.");
let value = msg.value()
.expect("Failed to retrieve a value.");
assert_eq!(
bundle.format_pattern(value, Some(&args), &mut err),
"Hello, John. You have 5 messages."
);
Implementations§
source§impl<'args> FluentArgs<'args>
impl<'args> FluentArgs<'args>
sourcepub fn with_capacity(capacity: usize) -> Self
pub fn with_capacity(capacity: usize) -> Self
Pre-allocates capacity for arguments.
sourcepub fn get<K>(&self, key: K) -> Option<&FluentValue<'args>>
pub fn get<K>(&self, key: K) -> Option<&FluentValue<'args>>
Gets the FluentValue
at the key
if it exists.
sourcepub fn iter(&self) -> impl Iterator<Item = (&str, &FluentValue<'_>)>
pub fn iter(&self) -> impl Iterator<Item = (&str, &FluentValue<'_>)>
Iterate over a tuple of the key an FluentValue
.
Trait Implementations§
source§impl<'args> Debug for FluentArgs<'args>
impl<'args> Debug for FluentArgs<'args>
source§impl<'args> Default for FluentArgs<'args>
impl<'args> Default for FluentArgs<'args>
source§fn default() -> FluentArgs<'args>
fn default() -> FluentArgs<'args>
Returns the “default value” for a type. Read more
source§impl<'args, K, V> FromIterator<(K, V)> for FluentArgs<'args>
impl<'args, K, V> FromIterator<(K, V)> for FluentArgs<'args>
source§impl<'args> IntoIterator for FluentArgs<'args>
impl<'args> IntoIterator for FluentArgs<'args>
Auto Trait Implementations§
impl<'args> Freeze for FluentArgs<'args>
impl<'args> !RefUnwindSafe for FluentArgs<'args>
impl<'args> Send for FluentArgs<'args>
impl<'args> !Sync for FluentArgs<'args>
impl<'args> Unpin for FluentArgs<'args>
impl<'args> !UnwindSafe for FluentArgs<'args>
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more