Move generated docs inside of parent `docs` module

finchie
Oct 26, 2023, 11:28 AM
4MMVEN5YUVUQ5RO3X2XKZVBMBMHOEJIYUCLKL63EPRUVQQRQXUAAC

Dependencies

  • [2] ZYNEMGAZ Use generated Typst code from Rust
  • [3] HEUMSBES Ouput use statements in generated file
  • [4] C73UJ7ZY Create simple `xilem_html` demo
  • [5] BA5Y6VSE Output Rust code using `syn`
  • [6] BSJYWOYS Implement MVP Typst embedding
  • [7] A4E5KLI2 Turn arguments into sidebar
  • [*] 2N3KOCP7 Create MVP Pandoc->Rust compiler

Change contents

  • replacement in crates/typst_rust_gen/src/lib.rs at line 90
    [3.21][3.21:63]()
    syn::Item::Use(syn::ItemUse {
    [3.21]
    [3.63]
    syn::Item::Mod(syn::ItemMod {
  • replacement in crates/typst_rust_gen/src/lib.rs at line 93
    [3.147][3.147:522]()
    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 {
    [3.147]
    [3.522]
    unsafety: None,
    mod_token: syn::token::Mod::default(),
    ident: syn::Ident::new("docs", proc_macro2::Span::call_site()),
    content: Some((syn::token::Brace::default(), 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(),
    ),
    }),
    ]
    .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 { lt_token: None, params: Punctuated::from_iter(vec![syn::GenericParam::Type(syn::TypeParam { attrs: Vec::new(), ident: syn::Ident::new("T", proc_macro2::Span::call_site()), colon_token: None, bounds: Punctuated::new(), eq_token: None, default: None })].into_iter()), gt_token: None, where_clause: None },
    paren_token: syn::token::Paren::default(),
    inputs: Punctuated::new(),
    variadic: None,
    output: syn::ReturnType::Type(
    syn::token::RArrow::default(),
    Box::new(syn::Type::ImplTrait(syn::TypeImplTrait {
    impl_token: syn::token::Impl::default(),
    bounds: Punctuated::from_iter(
    vec![syn::TypeParamBound::Trait(syn::TraitBound {
    paren_token: None,
    modifier: syn::TraitBoundModifier::None,
    lifetimes: None,
    path: syn::Path {
    leading_colon: None,
    segments: Punctuated::from_iter(
    vec![syn::PathSegment {
    ident: syn::Ident::new(
    "ViewSequence",
    proc_macro2::Span::call_site(),
    ),
    arguments: syn::PathArguments::AngleBracketed(
    syn::AngleBracketedGenericArguments {
    colon2_token: None,
    lt_token: syn::token::Lt::default(),
    args: Punctuated::from_iter(
    vec![syn::GenericArgument::Type(
    syn::Type::Path(syn::TypePath {
    qself: None,
    path: syn::Path {
    leading_colon: None,
    segments: Punctuated::from_iter(vec![syn::PathSegment { ident: syn::Ident::new("T", proc_macro2::Span::call_site()), arguments: syn::PathArguments::None }].into_iter()),
    },
    }),
    )]
    .into_iter(),
    ),
    gt_token: syn::token::Gt::default(),
    },
    ),
    }]
    .into_iter(),
    ),
    },
    })]
    .into_iter(),
    ),
    })),
    ),
    },
    block: Box::new(syn::Block {
  • replacement in crates/typst_rust_gen/src/lib.rs at line 190
    [3.589][3.589:1366](),[3.1693][3.1693:1894]()
    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(),
    ),
    }),
    ]
    .into_iter(),
    ),
    })),
    }),
    semi_token: syn::token::Semi::default(),
    [3.589]
    [3.1894]
    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,
    )],
    }),
    }),])),
    semi: None,
  • edit in crates/typst_rust_gen/src/lib.rs at line 202
    [3.1910][3.1910:2379](),[3.2379][2.102:452](),[2.452][3.2435:2581](),[3.2435][3.2435:2581](),[3.2581][2.453:3576](),[2.3576][3.2635:3167](),[3.2635][3.2635:3167](),[3.3167][3.3043:3059](),[3.3043][3.3043:3059]()
    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 { lt_token: None, params: Punctuated::from_iter(vec![syn::GenericParam::Type(syn::TypeParam { attrs: Vec::new(), ident: syn::Ident::new("T", proc_macro2::Span::call_site()), colon_token: None, bounds: Punctuated::new(), eq_token: None, default: None })].into_iter()), gt_token: None, where_clause: None },
    paren_token: syn::token::Paren::default(),
    inputs: Punctuated::new(),
    variadic: None,
    output: syn::ReturnType::Type(
    syn::token::RArrow::default(),
    Box::new(syn::Type::ImplTrait(syn::TypeImplTrait {
    impl_token: syn::token::Impl::default(),
    bounds: Punctuated::from_iter(
    vec![syn::TypeParamBound::Trait(syn::TraitBound {
    paren_token: None,
    modifier: syn::TraitBoundModifier::None,
    lifetimes: None,
    path: syn::Path {
    leading_colon: None,
    segments: Punctuated::from_iter(
    vec![syn::PathSegment {
    ident: syn::Ident::new(
    "ViewSequence",
    proc_macro2::Span::call_site(),
    ),
    arguments: syn::PathArguments::AngleBracketed(
    syn::AngleBracketedGenericArguments {
    colon2_token: None,
    lt_token: syn::token::Lt::default(),
    args: Punctuated::from_iter(
    vec![syn::GenericArgument::Type(
    syn::Type::Path(syn::TypePath {
    qself: None,
    path: syn::Path {
    leading_colon: None,
    segments: Punctuated::from_iter(vec![syn::PathSegment { ident: syn::Ident::new("T", proc_macro2::Span::call_site()), arguments: syn::PathArguments::None }].into_iter()),
    },
    }),
    )]
    .into_iter(),
    ),
    gt_token: syn::token::Gt::default(),
    },
    ),
    }]
    .into_iter(),
    ),
    },
    })]
    .into_iter(),
    ),
    })),
    ),
    },
    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 src/main.rs at line 93
    [3.114][2.50:101]()
    el::div(test()).attr("id", "content"),
    [3.114]
    [3.161]
    el::div(docs::test()).attr("id", "content"),