Serial-ATA / lofty-rs

Audio metadata library
Apache License 2.0
187 stars 35 forks source link

Retain format-specific tag items in conversion to `Tag` #302

Closed Serial-ATA closed 5 months ago

Serial-ATA commented 9 months ago

Since we know all of the tag types ahead of time, there's no reason we couldn't preserve the format-specific items (or the entire tag itself) in an immutable way inside the Tag, using an enum.

This would make #288 obsolete, and save users from metadata loss, due to the majority simply using the generic API for reads and writes.

This would not affect {split, merge}_tag. It will only be used for Into::<Tag>::into(format_specific_tag), for example: https://github.com/Serial-ATA/lofty-rs/blob/be749a48a3f3cf6c7a0dd91f158ac96be3bbea78/src/id3/v2/tag.rs#L1285-L1289

Not sure of this now, but this could also remove the need for ItemKey::Unknown, allowing it to finally be Copy. This has been a pain point forever.