module metadata @[heap; minify] pub struct ID3v1 { pub mut: // Жанр genre string // Название аудиодорожки title string // Актёр озучания artist string // Название альбома album string // Записывается как 2/5, что значит 2 трэк из 5 track string // Год записи, может int нужно year string // Комментарий 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" }