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.
Simplified version of FluentValue that can implement Encodable and Decodable. Converted
to a FluentValue by the emitter to be used in diagnostic translation.
Converts a value of a type into a DiagArg (typically a field of an Diag struct).
Implemented as a custom trait rather than From so that it is implemented on the type being
converted rather than on DiagArgValue, which enables types from other rustc_* crates to
implement this.
Simplified version of FluentArg that can implement Encodable and Decodable. Collection of
DiagArg are converted to FluentArgs (consuming the collection) at the start of diagnostic
emission.