1 个不稳定版本
0.1.2 | 2023 年 8 月 1 日 |
---|---|
0.1.1 |
|
0.1.0 |
|
#1976 in 解析器实现
每月 26 次下载
24KB
678 行
asai
用于解析 .ass 文件的 Rust 库,该文件用于存储使用高级子站 Alpha 格式的字幕。
安装
将以下内容添加到您的 Cargo.toml 中
[dependencies]
asai = "0.1.0"
使用方法
如果您只想解析 ass,可以使用 asai 根目录下的 parse_str
use asai::structure::Ass;
fn main() {
let data = "...";
let ass = asai::parse_str(data);
println!("{:?}", ass.styles); // Get styles
println!("{:?}", ass.info); // Get info
println!("{:?}", ass.events); // Get events
}
另一种方法是使用自定义结构来表示 ass。这允许我们设置默认值并仅解析所需字段。以下是一个示例
use asai_macro::FromLine;
use asai::structure::event::EventKey;
use asai::structure::Ass;
#[derive(FromLine, Debug)]
struct MyEvent<'a> {
#[name("Text")]
text: &'a str,
#[name("Custom")]
#[default("Some default value")]
custom_field: &'a str
}
fn main() {
let data = "...";
let my_events: FormattedSection<EventKey, MyEvent> = Ass::parse_section("Events", data).unwrap();
}
依赖
~240–680KB
~16K SLoC