3 个版本
0.1.2 | 2022 年 9 月 25 日 |
---|---|
0.1.1 | 2022 年 9 月 25 日 |
0.1.0 | 2022 年 9 月 25 日 |
#1742 在 开发工具
33KB
593 行
intern-str-codegen
将 Graph
转换为其 Rust 代码等效形式。
这允许在构建时生成一个 Graph
,然后将其插入到二进制文件中。这使得在嵌入式系统中可以几乎不增加成本地使用大型图。
许可证
intern_str
许可证受以下之一
- Apache 许可证第 2 版 (LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
由您选择。
lib.rs
:
将 Graph
转换为其 Rust 代码等效形式。
这允许在构建时生成一个 Graph
,然后将其插入到二进制文件中。这使得在嵌入式系统中可以几乎不增加成本地使用大型图。
示例
use intern_str::{Graph, Segmentable};
use intern_str::builder::{Builder, Utf8Graph};
use intern_str_codegen::generate;
use std::{fs::File, io::{prelude::*, BufWriter}};
let mut builder = Builder::<_, Utf8Graph>::new();
builder.add("hello", 1).unwrap();
builder.add("world", 2).unwrap();
let mut buffer = Vec::new();
let graph = builder.build(&mut buffer);
// Convert to string.
let code = generate(
&graph,
"&'static str",
"usize",
|f, out| write!(f, "{}", out),
);
let mut out = BufWriter::new(File::create("graph.rs").unwrap());
writeln!(
out,
"const GRAPH: intern_str::Graph<'static, 'static, &'static str, usize> = {}",
code,
)?;