Return `syn::Expr` instead of `&str` from `transform_inline`

finchie
Oct 27, 2023, 4:18 AM
FLIMM2YMIEXODPNP47RSACQEUN4CKRE2SA2RWKZN6FGKUU57DGJAC

Dependencies

  • [2] BA5Y6VSE Output Rust code using `syn`
  • [3] GYTRFADR Support Typst subdirectories
  • [4] 2N3KOCP7 Create MVP Pandoc->Rust compiler

Change contents

  • replacement in crates/typst_rust_gen/src/lib.rs at line 362
    [3.2421][2.4344:4403]()
    fn transform_inline(inline: &pandoc_ast::Inline) -> &str {
    [3.2421]
    [3.2470]
    fn literal_string(value: &str) -> syn::ExprLit {
    let lit_str = syn::LitStr::new(value, proc_macro2::Span::call_site());
    syn::ExprLit {
    attrs: Vec::new(),
    lit: syn::Lit::Str(lit_str),
    }
    }
    fn transform_inline(inline: &pandoc_ast::Inline) -> syn::Expr {
  • replacement in crates/typst_rust_gen/src/lib.rs at line 372
    [3.2489][2.4404:4493]()
    pandoc_ast::Inline::Str(text) => text,
    pandoc_ast::Inline::Space => " ",
    [3.2489]
    [3.2579]
    pandoc_ast::Inline::Str(text) => syn::Expr::Lit(literal_string(text.as_str())),
    pandoc_ast::Inline::Space => syn::Expr::Lit(literal_string(" ")),
  • replacement in crates/typst_rust_gen/src/lib.rs at line 379
    [2.4565][2.4565:4699]()
    let transformed: Vec<&str> = inlines.iter().map(transform_inline).collect();
    let full_literal: String = transformed.join("");
    [2.4565]
    [2.4699]
    let expressions = inlines.into_iter().map(transform_inline);
  • replacement in crates/typst_rust_gen/src/lib.rs at line 381
    [2.4725][2.4725:4899]()
    // TODO: figure out what the span actually should be
    let lit_str = syn::LitStr::new(&full_literal, proc_macro2::Span::call_site());
    syn::Expr::Lit(syn::ExprLit {
    [2.4700]
    [2.4899]
    // Return a tuple containing every parent expression
    syn::Expr::Tuple(syn::ExprTuple {
  • replacement in crates/typst_rust_gen/src/lib.rs at line 384
    [2.4926][2.4926:4963]()
    lit: syn::Lit::Str(lit_str),
    [2.4926]
    [2.4963]
    paren_token: syn::token::Paren::default(),
    elems: Punctuated::from_iter(expressions),