1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
4pub struct LyricChunk {
5 pub start_time: f64,
8 pub text: String,
9}
10
11#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
12pub struct LyricLine {
13 pub start_time: f64,
14 #[serde(default)]
15 pub end_time: Option<f64>,
16 pub text: String,
17 #[serde(default)]
18 pub chunks: Vec<LyricChunk>,
19 #[serde(default)]
20 pub parent_line_index: Option<usize>,
21 #[serde(default)]
22 pub background: bool,
23 #[serde(default)]
24 pub opposite_turn: bool,
25}
26
27#[derive(Debug, Clone, PartialEq)]
28pub enum Lyrics {
29 Synced(Vec<LyricLine>),
30 Plain(String),
31}