Struct FluentArgs  
pub struct FluentArgs<'args>(Vec<(Cow<'args, str>, FluentValue<'args>)>);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."
);Tuple Fields§
§0: Vec<(Cow<'args, str>, FluentValue<'args>)>Implementations§
§impl<'args> FluentArgs<'args>
 
impl<'args> FluentArgs<'args>
pub fn new() -> FluentArgs<'args>
pub fn new() -> FluentArgs<'args>
Creates a new empty argument map.
pub fn with_capacity(capacity: usize) -> FluentArgs<'args>
pub fn with_capacity(capacity: usize) -> FluentArgs<'args>
Pre-allocates capacity for arguments.
pub 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.
pub fn set<K, V>(&mut self, key: K, value: V)
pub fn set<K, V>(&mut self, key: K, value: V)
Sets the key value pair.
pub 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§
§impl<'args> Debug for FluentArgs<'args>
 
impl<'args> Debug for FluentArgs<'args>
§impl<'args> Default for FluentArgs<'args>
 
impl<'args> Default for FluentArgs<'args>
§fn default() -> FluentArgs<'args>
 
fn default() -> FluentArgs<'args>
§impl<'args, K, V> FromIterator<(K, V)> for FluentArgs<'args>
 
impl<'args, K, V> FromIterator<(K, V)> for FluentArgs<'args>
§fn from_iter<I>(iter: I) -> FluentArgs<'args>where
    I: IntoIterator<Item = (K, V)>,
 
fn from_iter<I>(iter: I) -> FluentArgs<'args>where
    I: IntoIterator<Item = (K, V)>,
§impl<'args> IntoIterator for FluentArgs<'args>
 
impl<'args> IntoIterator for FluentArgs<'args>
§type Item = (Cow<'args, str>, FluentValue<'args>)
 
type Item = (Cow<'args, str>, FluentValue<'args>)
§type IntoIter = IntoIter<<FluentArgs<'args> as IntoIterator>::Item>
 
type IntoIter = IntoIter<<FluentArgs<'args> as IntoIterator>::Item>
§fn into_iter(self) -> <FluentArgs<'args> as IntoIterator>::IntoIter
 
fn into_iter(self) -> <FluentArgs<'args> as IntoIterator>::IntoIter
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
§impl<T> Instrument for T
 
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
 
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
 
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
 
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
 
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
 
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more