module metadata @[heap; minify] pub struct ID3v1 { pub mut: genre string// Жанр title string // Название аудиодорожки artist string // Актёр озучания album string // Название альбома track string // Записывается как 2/5, что значит 2 трэк из 5 year string // Год записи, может int нужно comment string // Комментарий embedded bool // Присутвует ли тэг } @[heap; minify] pub struct ID3v23 { pub mut: // Размер тэга size u64 // Название аудиодорожки tit2 Frame tpe1 Frame // Автор tpe2 Frame // Исполнитель talb Frame // Название альбома tyer Frame // Год выпуска trck Frame // Номер трека tcon Frame // Жанр tcop Frame // Композитор (автор) apic Frame // Обложка txxx Frame // Комментарий unknown Frame // Затычка others []Frame // Остальные фреймы encoded_header []u8 embedded bool // Присутвует ли тэг version u8 = 3 // Версия тэга title string = "ID3" } @[heap; minify] pub struct ID3v24 { pub mut: // Размер тэга size u64 // Название аудиодорожки tit2 Frame // Автор tpe1 Frame // Исполнитель tpe2 Frame // Название альбома talb Frame // Год выпуска tdrc Frame // Номер трека trck Frame // Жанр tcon Frame // Композитор (автор) tcop Frame // Обложка apic Frame // Комментарий txxx Frame // Затычка modified_frames []Frame // Остальные фреймы others []Frame // Версия тэга version u8 = 4 // Присутвует ли тэг embedded bool // Закодированный хэдер encoded_header []u8 title string = "ID3" } pub struct Audio { pub mut: id3v1 ID3v1 id3v23 ID3v23 id3v24 ID3v24 path string extension string = ".mp3" }