A library for reading and writing APEv2 tags.
Fixed multiple values support.
You may need to overwrite your tags if you have called the Tag::add_item method with the same key multiple times,
since the spec states that
"Every Tag Item Key can only occures (at most) once".
- Updated byteorder to 1.5.
- Added
TryFrom<&Item>trait implementation forVec<&str>and&str. - Added
TryFrom<Item>trait implementation forVec<String>andString. - Removed
ItemValueenum andItem.valuefield; useTryFrominstead. - Added
ItemType { Binary, Locator, Text }enum. - Added
Item::new(key, type, value)method. - Removed
Item::from_binary,Item::from_locatorandItem::from_textmethods; useItem::newmethod instead. - Added
Item.add_valuemethod. - Removed
Tag::add_itemmethod; useItem.add_valueinstead. - Added
Item::with_typemethod. - Added
Item::with_valuemethod. - Added
Item.get_typemethod. - Changed
Errorenum:- Removed:
FromUtf8,ParseInt - Added:
ParseItemKey,ParseItemBinary,ParseItemValue,ParseLyrics3V2SizeStr,ParseLyrics3V2SizeInt. - Changed:
BadItemType->InvalidItemType(u32).BadTagSize->InvalidTagSize.
- Removed:
- Added support for multiple values under same key:
- Added
Tag::itemsmethod. - Added
Tag::add_itemmethod. - Replaced
Tag::remove_itembyTag::remove_itemsmethod.Tag::itemmethod returns a first found item.Tag::set_itemremoves all items under the given key and adds a new one.
- Added
- Added derive
CloneforItemandItemValuestructs.
- Switched to 2021 edition.
- Updated byteorder to 1.4
- Support reading/writing/removing tags from opened files.
- Case-insensitive key comparison.
- Support writing an empty tag.
- Switched to 2018 edition.
- Updated byteorder to 1.3
- Fixed type parameters in
Item::from_locatorandItem::from_text. - Removed use of deprecated
Error::description. - Lowercase error description.
Item::to_vecmethod is private now.- Removed
itemsfield from theTagstruct. - Added
Tag::iter()method. - Added
IntoIteratorimplementation forTagstruct. Tag::writemethod replaced bywritefunction.
- Use byteorder 1.0.0.
- Small internal improvements.
- Use
Result<()>instead ofOption<Error>.
- First release.
The MIT License (MIT)