3个不稳定版本

0.2.0 2024年1月6日
0.1.1 2023年12月17日
0.1.0 2023年12月16日

#125 in 无标准库

MIT 许可证

16KB
148

fleck — 用于使用uf2字体的库

uf2 是个人计算领域uxn生态系统使用的位图字体格式。这是一个用于在Rust项目中解析和使用uf2字体的简单库。

本库的一些选择和示例参考了出色的 psf2 库的结构。

此外,如果您喜欢 no_std,您可以使用 no_std 功能标志来确保所有功能都是 no_stdno_alloc

fleck 在crates.io

fleck 是更广泛的 weft 生态系统的一部分。

A pictogram of a line in a zig-zag pattern like the weft on a loom.

如果您喜欢uf2这样的字体,您可能会喜欢 tidweft 项目中的其他东西!本项目起源于 tid 的uf2解析器。

示例

let mut data = [0u8; fleck::FILE_SIZE];
let mut file = std::fs::File::open(file_path).expect("could not find font file");
file.read_exact(&mut data).expect("could not read font data");
let font = Font::new(&data);
// Alternatively you could use `Font::load_from_file(file_path)`
// if you're fine with using std.

let text = args.next().unwrap_or("demo".to_string());
for ch in message.chars() {
    let Some(glyph) = font.glyph(ch) else {
        eprintln!("unsupported glyph: {}", ch);
        continue;
    };

    // Print a representation of each glyph to the terminal.
    for row in glyph {
        for filled in row {
            let pixel = if filled { "##" } else { "  " };
            print!("{pixel}");
        }
        println!();
    }
}

贡献

fleck 的问题追踪器可在 todo.sr.ht/~ma3ke/fleck 找到。我们使用 todo.sr.ht/~ma3ke/weft 来跟踪与整个项目相关的主意和任务。

注意:如果您想提交更改,但觉得通过电子邮件来做很令人生畏,那完全没有问题!另一种很好的方式是在其他地方分叉仓库,将您的更改推送到那里,并将您希望我考虑的提交链接发给我。或者,只需通过DM或电子邮件联系我 :)

补丁可以提交到 weft 邮件列表(~ma3ke/weft@lists.sr.ht)。

在提交补丁之前,通过DM或邮件列表寻求帮助和讨论是明智而有趣的做法。

通过电子邮件提交补丁时,请将主题前缀设置为 [PATCH fleck]

git config format.subjectPrefix "PATCH fleck"

(如果您不知道这些东西是如何工作的,但想了解,git-send-email.io 是一个极好的动手学习资源。)


ma3ke 制作 <3

无运行时依赖