Ouput use statements in generated file

finchie
Oct 26, 2023, 8:36 AM
HEUMSBESSTWA6G7ZG5OJP3ZW3FLXHYUCODGDHMZSLE4O777JSDJQC

Dependencies

  • [2] BA5Y6VSE Output Rust code using `syn`
  • [3] 2N3KOCP7 Create MVP Pandoc->Rust compiler

Change contents

  • replacement in crates/typst_rust_gen/src/lib.rs at line 89
    [2.1898][2.1898:3043]()
    items: vec![syn::Item::Fn(syn::ItemFn {
    attrs: Vec::new(),
    vis: syn::Visibility::Public(syn::token::Pub::default()),
    sig: syn::Signature {
    constness: None,
    asyncness: None,
    unsafety: None,
    abi: None,
    fn_token: syn::token::Fn::default(),
    ident: syn::Ident::new("test", proc_macro2::Span::call_site()),
    generics: syn::Generics::default(),
    paren_token: syn::token::Paren::default(),
    inputs: Punctuated::new(),
    variadic: None,
    output: syn::ReturnType::Default,
    },
    block: Box::new(syn::Block {
    brace_token: syn::token::Brace::default(),
    stmts: vec![syn::Stmt::Expr(
    syn::Expr::Tuple(syn::ExprTuple {
    attrs: Vec::new(),
    paren_token: syn::token::Paren::default(),
    elems: Punctuated::from_iter(blocks.into_iter()),
    }),
    None,
    )],
    [2.1898]
    [2.3043]
    items: vec![
    syn::Item::Use(syn::ItemUse {
    attrs: Vec::new(),
    vis: syn::Visibility::Inherited,
    use_token: syn::token::Use::default(),
    leading_colon: None,
    tree: syn::UseTree::Path(syn::UsePath {
    ident: syn::Ident::new("xilem_html", proc_macro2::Span::call_site()),
    colon2_token: syn::token::PathSep::default(),
    tree: Box::new(syn::UseTree::Group(syn::UseGroup {
    brace_token: syn::token::Brace::default(),
    items: Punctuated::<syn::UseTree, syn::token::Comma>::from_iter(
    vec![
    syn::UseTree::Name(syn::UseName {
    ident: syn::Ident::new(
    "elements",
    proc_macro2::Span::call_site(),
    ),
    }),
    syn::UseTree::Name(syn::UseName {
    ident: syn::Ident::new(
    "ViewSequence",
    proc_macro2::Span::call_site(),
    ),
    }),
    syn::UseTree::Name(syn::UseName {
    ident: syn::Ident::new(
    "ViewMarker",
    proc_macro2::Span::call_site(),
    ),
    }),
    ]
    .into_iter(),
    ),
    })),
    }),
    semi_token: syn::token::Semi::default(),
    }),
    syn::Item::Fn(syn::ItemFn {
    attrs: Vec::new(),
    vis: syn::Visibility::Public(syn::token::Pub::default()),
    sig: syn::Signature {
    constness: None,
    asyncness: None,
    unsafety: None,
    abi: None,
    fn_token: syn::token::Fn::default(),
    ident: syn::Ident::new("test", proc_macro2::Span::call_site()),
    generics: syn::Generics::default(),
    paren_token: syn::token::Paren::default(),
    inputs: Punctuated::new(),
    variadic: None,
    output: syn::ReturnType::Default,
    },
    block: Box::new(syn::Block {
    brace_token: syn::token::Brace::default(),
    stmts: vec![syn::Stmt::Expr(
    syn::Expr::Tuple(syn::ExprTuple {
    attrs: Vec::new(),
    paren_token: syn::token::Paren::default(),
    elems: Punctuated::from_iter(blocks.into_iter()),
    }),
    None,
    )],
    }),
  • replacement in crates/typst_rust_gen/src/lib.rs at line 155
    [2.3059][2.3059:3072]()
    })],
    [2.3059]
    [2.3072]
    ],
  • replacement in crates/typst_rust_gen/src/lib.rs at line 158
    [2.3080][2.3080:3110]()
    quote!(#file).to_string()
    [2.3080]
    [2.3110]
    let output = quote!(#file).to_string();
    dbg!(&output);
    output
  • replacement in crates/typst_rust_gen/src/lib.rs at line 173
    [3.1948][2.3450:3543]()
    // The path should be el::name
    // e.g. el::h2
    segments.push(path_segment("el"));
    [3.1948]
    [2.3543]
    // The path should be elements::name
    // e.g. elements::h2
    segments.push(path_segment("elements"));