Skip to content

API Reference

ChouChiu edited this page Jun 26, 2026 · 2 revisions

Table of Contents

API Reference

所有 API 通过 lyrics-helper 门面 crate 暴露,使用 use lyrics_helper::* 即可访问。

解析

parse_auto

自动检测歌词格式并解析。

<syntaxhighlight lang="rust"> pub fn parse_auto(input: &str) -> Result<LyricsData, String> </syntaxhighlight>

  • input: 歌词文本内容
  • 返回: LyricsData 结构体

parse

指定格式解析歌词。

<syntaxhighlight lang="rust"> pub fn parse(input: &str, raw_type: LyricsRawTypes) -> Result<LyricsData, String> </syntaxhighlight>

  • input: 歌词文本内容
  • raw_type: 歌词格式类型

生成

generate_string

将 LyricsData 生成为指定格式的字符串。

<syntaxhighlight lang="rust"> pub fn generate_string(data: &LyricsData, lyrics_type: LyricsTypes) -> Result<String, String> </syntaxhighlight>

  • data: 歌词数据
  • lyrics_type: 目标格式

解密

decrypt_qrc

解密 QRC 加密歌词。

<syntaxhighlight lang="rust"> pub fn decrypt_qrc(encrypted: &str) -> Result<String, String> </syntaxhighlight>

decrypt_krc

解密 KRC 加密歌词。

<syntaxhighlight lang="rust"> pub fn decrypt_krc(encrypted: &[u8]) -> Result<String, String> </syntaxhighlight>

核心数据结构

LyricsData

歌词数据的顶层结构:

<syntaxhighlight lang="rust"> pub struct LyricsData { pub lines: Option<Vec<LineInfo>>, pub track: Option<TrackMetadata>, // ... } </syntaxhighlight>

LineInfo

单行歌词信息:

<syntaxhighlight lang="rust"></syntaxhighlight> pub struct LineInfo {

    pub start_time: Option&lt;f64&gt;&lt;/f64&gt;,
    pub end_time: Option&lt;f64&gt;,
    pub content: Option&lt;String&gt;,
    pub syllables: Option&lt;Vec&lt;SyllableInfo&gt;&gt;,
    // ...

} &lt;/syntaxhighlight&gt;</f64>

SyllableInfo

逐字/逐音节信息:

<syntaxhighlight lang="rust"></syntaxhighlight> pub struct SyllableInfo {

    pub start_time: Option&lt;f64&gt;&lt;/f64&gt;,
    pub duration: Option&lt;f64&gt;,
    pub content: Option&lt;String&gt;,
    // ...

} &lt;/syntaxhighlight&gt;</f64>

TrackMetadata

曲目元数据:

<syntaxhighlight lang="rust"></syntaxhighlight> pub struct TrackMetadata {

    pub title: Option<String>,
    pub artist: Option<String>,
    pub album: Option<String>,
    pub duration: Option&lt;f64&gt;,
    // ...

} &lt;/syntaxhighlight&gt;</f64>

枚举类型

LyricsRawTypes

输入格式枚举,用于 parse() 的第二个参数。

LyricsTypes

输出格式枚举,用于 generate_string() 的第二个参数。

相关页面

Clone this wiki locally