Implement `to_syn` for groups containing simple text messages
Dependencies
- [2]
O77KA6C4Create `fluent_embed` crate
Change contents
- replacement in fluent_embed/src/lib.rs at line 1
use fluent_syntax::ast::{Entry, Message, Resource};use fluent_syntax::ast::{Entry, Message, PatternElement, Resource};use syn::parse_quote; - replacement in fluent_embed/src/lib.rs at line 5
enum GroupEntry<'resource> {pub enum GroupEntry<'resource> { - edit in fluent_embed/src/lib.rs at line 12
}impl<'resource> GroupEntry<'resource> {fn to_syn(&self) -> syn::Expr {match self {Self::Message(message) => message.value.as_ref().map_or_else(|| parse_quote! { () },|pattern| {let parsed_patterns = pattern.elements.iter().map(match_pattern_element);parse_quote! { #(#parsed_patterns)+* }},),}} - edit in fluent_embed/src/lib.rs at line 48
}// TODO: turn this into a well-formed `match expression`pub fn to_syn(&self) -> Vec<syn::Expr> {self.children.iter().map(GroupEntry::to_syn).collect::<Vec<_>>() - edit in fluent_embed/src/lib.rs at line 58[2.999]
fn match_pattern_element<'resource>(pattern_element: &'resource PatternElement<&'resource str>,) -> syn::Expr {match pattern_element {PatternElement::TextElement { value } => parse_quote! { #value },_ => todo!(),}} - edit in fluent_embed/examples/groups.rs at line 2
use quote::quote; - edit in fluent_embed/examples/groups.rs at line 9
let syn_expressions = group.to_syn().iter().map(|expr| quote! {#expr}).collect::<Vec<_>>(); - replacement in fluent_embed/examples/groups.rs at line 15
dbg!(group);dbg!(syn_expressions);