1 个不稳定版本

0.1.2 2023 年 8 月 1 日
0.1.1 2023 年 8 月 1 日
0.1.0 2023 年 7 月 26 日

#1976 in 解析器实现

每月 26 次下载

MIT 许可协议

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