11个版本 (6个稳定版)
1.0.6 | 2022年6月14日 |
---|---|
1.0.3 | 2022年6月13日 |
1.0.1 | 2021年10月22日 |
0.2.3 | 2021年10月22日 |
0.1.2 | 2021年10月19日 |
在 解析器实现 中排名 432
在 aaa 中使用
53KB
1K SLoC
rs3a
该库提供了3a ascii动画格式的结构化表示以及读取和写入该格式的相关方法。
在 crates.io 上的此库
使用情况
- aaa - 用于3a文件渲染的Tui工具
用法
将此添加到您的 Cargo.toml
[dependencies]
rs3a = "1"
以下是一个简单的示例,它解析一个3a格式的字符串并显示标题
use rs3a;
const COLORTABLE_EXAMPLE: &str = "
width 32
height 19
loop false
colors full
title colortable demo
author Moth
in ' ab ' ffffffffffffffffffffffffffffffff00000000000000000000000000000000
a-foreground, b-background ffffffffffffffffffffffffffffffff00000000000000000000000000000000
ffffffffffffffffffffffffffffffff00000000000000000000000000000000
00 01 02 03 04 05 06 07 0000000000000000000000000000000000001111222233334444555566667777
10 11 12 13 14 15 16 17 1111111111111111111111111111111100001111222233334444555566667777
20 21 22 23 24 25 26 27 2222222222222222222222222222222200001111222233334444555566667777
30 31 32 33 34 35 36 37 3333333333333333333333333333333300001111222233334444555566667777
40 41 42 43 44 45 46 47 4444444444444444444444444444444400001111222233334444555566667777
50 51 52 53 54 55 56 57 5555555555555555555555555555555500001111222233334444555566667777
60 61 62 63 64 65 66 67 6666666666666666666666666666666600001111222233334444555566667777
70 71 72 73 74 75 76 77 7777777777777777777777777777777700001111222233334444555566667777
80 81 82 83 84 85 86 87 8888888888888888888888888888888800001111222233334444555566667777
90 91 92 93 94 95 96 97 9999999999999999999999999999999900001111222233334444555566667777
a0 a1 a2 a3 a4 a5 a6 a7 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa00001111222233334444555566667777
b0 b1 b2 b3 b4 b5 b6 b7 bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb00001111222233334444555566667777
c0 c1 c2 c3 c4 c5 c6 c7 cccccccccccccccccccccccccccccccc00001111222233334444555566667777
d0 d1 d2 d3 d4 d5 d6 d7 dddddddddddddddddddddddddddddddd00001111222233334444555566667777
e0 e1 e2 e3 e4 e5 e6 e7 eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee00001111222233334444555566667777
f0 f1 f2 f3 f4 f5 f6 f7 ffffffffffffffffffffffffffffffff00001111222233334444555566667777";
fn main() {
let art = rs3a::load(COLORTABLE_EXAMPLE.to_string()).unwrap();
println!("{:?}", art.header);
}
简短的API描述
结构体
库的核心是Art类型,它实现了3a结构
struct Art{
pub header: Header,
pub body: Body,
}
标题类型包含3a文件标题的信息
struct Header{
width: u16,
height: u16,
delay: u16,
loop_enable: bool,
color_mod: ColorMod,
utf8: bool,
datacols: u16,
preview: u16,
audio: Option<String>,
title: Option<String>,
author: Option<String>,
}
主体类型包含帧的数组,其中每个帧是行的数组,每个行是行片段的数组
struct Body{
frames: Vec<Frame>
}
type Frame = Vec<Row>;
type Row = Vec<RowFragment>;
每个RowFragment是一组具有相同前景和背景颜色值的连续符号
struct RowFragment{
text: String,
fg_color: Option<Color>,
bg_color: Option<Color>,
}
函数
load
和 save
函数允许您将字符串转换为 Art
并反向转换。
load_file
和 save_file
函数允许您将3a文件读取到 Art
并将 Art
写入3a文件。
依赖项
~2.2–3MB
~54K SLoC