-
Notifications
You must be signed in to change notification settings - Fork 106
Open
Labels
crate:fluent-bundleIssues related to fluent-bundle crateIssues related to fluent-bundle crateenhancement
Description
FluentArgs's key API (beyond construction) would appear to be get. Maybe also iter; I don't know if that's actually needed.
Can we replace the type with a trait?
pub trait Arguments {
fn get(&self, key: &str) -> Option<FluentValue<'_>>;
// if necessary:
// type Iter<'a>: Iterator<Item = (&'a str, FluentValue<'a>)> + 'a;
// fn iter(&self) -> Self::Iter<'_>;
// (Later this can just use impl Trait: see RFC#3425.)
}(Technically, FluentArgs and fluent_args! don't need to change, but FluentBundle::write_pattern, format_pattern should use the trait.)
Motivation: this allows any type implementing fluent::Arguments to be used as arguments (often just via a derive macro). So, say, a Druid widget FluentText: druid::Widget<T> with data: &T could directly use that data type as arguments.
Edit: return FluentValue by value not ref to allow construction in get and Iterator::next.
juliancoffee
Metadata
Metadata
Assignees
Labels
crate:fluent-bundleIssues related to fluent-bundle crateIssues related to fluent-bundle crateenhancement