【问题标题】:Pushing a runtime operation to compile time in Rust?在 Rust 中推送运行时操作以编译时间?
【发布时间】:2020-10-04 08:58:13
【问题描述】:

我可以include external source markdown into the binary with include_str!()

static HOME: &'static str = include_str!("../content/foo.md");

有了这个我的紫杉应用程序读取

-rw-r--r-- 1 ecarroll ecarroll 111K Jun 14 19:58 ./static/wasm_bg.wasm

现在,如果我想将该降价显示为 HTML,我可以使用 comrak 模块并调用 markdown_to_html。这正是我想要的,

 use comrak;
 comrak::markdown_to_html(HOME, &comrak::ComrakOptions::default())

尽管HOMEstatic str 的事件,这会导致1.3M 程序集(从111K 开始)

-rw-r--r-- 1 ecarroll ecarroll 1.3M Jun 14 19:59 ./static/wasm_bg.wasm

语言中是否有将这个计算推到编译时并从运行时 Web 程序集中排除所有 comrak 内容的语言?

【问题讨论】:

  • 我什么都不懂,但如果你想在编译时构建一些东西,请查看 build.rs
  • 是的,构建一个将 Markdown 转换为 HTML 的工具,然后将生成的 HTML 嵌入到 yoir 二进制文件中(或者更好的是,从文件中加载它)。

标签: rust runtime markdown compile-time


【解决方案1】:

您可以使用build script (build.rs)examples page 列出了"code generation",您可能可以适应。

【讨论】:

    猜你喜欢
    • 2022-11-26
    • 2022-12-03
    • 2010-12-29
    • 1970-01-01
    • 2010-09-18
    • 2010-10-25
    • 2013-01-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多