mastodon.cardina1.red は、数々の独立したMastodonサーバーのうちのひとつです。サーバーに登録してFediverseのコミュニティに加わってみませんか。

サーバーの情報

3
人のアクティブユーザー

らりお・ザ・何らかの🈗然㊌ソムリエ

だったら

struct Sound {
channels: u8,
len: Duration,
repeat: bool,
waveform: Vec<u8>,
}
struct Music {
title: Option<String>,
artist: Vec<String>,
// ...
}
という感じかなぁ (Sound あるいはそのハンドルが Music に含まれるかは要件次第)

たぶんここで MusicMeta や MusicInfo という名前にはしない

内部的にファイルハンドルとかファイルパスのみを持つようなやつを MusicHandle とか MusicFile と命名しといて、

MusicFile::meta(&mut self) -> Music
MusicFile::sound(&mut self) -> Sound

みたいな感じの API にするかなぁ。
&mut なのは std::fs::File は読み込みでも変更されるから

や、音楽プレイヤーの文脈で言うならさらに Sound は再生しながらストリーミング読み込みという感じになりそうなので、波形データの部分的読み出しやデコードを担当する SoundStream みたいな型を用意することになるだろうけど。