1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
//! A library for reading and writing iTunes style MPEG-4 audio metadata. //! //! # Examples //! //! ## The easy way //! ```no_run //! let mut tag = mp4ameta::Tag::read_from_path("music.m4a").unwrap(); //! //! println!("{}", tag.artist().unwrap()); //! //! tag.set_artist("artist"); //! tag.write_to_path("music.m4a").unwrap(); //! ``` //! //! ## The hard way //! ```no_run //! use mp4ameta::{Data, Fourcc, Tag}; //! //! let mut tag = Tag::read_from_path("music.m4a").unwrap(); //! let artist_ident = Fourcc(*b"\xa9ART"); //! //! let artist = tag.strings_of(&artist_ident).next().unwrap(); //! println!("{}", artist); //! //! tag.set_data(artist_ident, Data::Utf8("artist".to_owned())); //! tag.write_to_path("music.m4a").unwrap(); //! ``` //! //! ## Using freeform identifiers //! ```no_run //! use mp4ameta::{Data, FreeformIdent, Tag}; //! //! let mut tag = Tag::read_from_path("music.m4a").unwrap(); //! let isrc_ident = FreeformIdent::new("com.apple.iTunes", "ISRC"); //! //! let isrc = tag.strings_of(&isrc_ident).next().unwrap(); //! println!("{}", isrc); //! //! tag.set_data(isrc_ident, Data::Utf8("isrc".to_owned())); //! tag.write_to_path("music.m4a").unwrap(); //! ``` #![deny(missing_docs, warnings)] pub use crate::atom::{ident, Data, DataIdent, Fourcc, FreeformIdent, Ident}; pub use crate::error::{Error, ErrorKind, Result}; pub use crate::tag::{Tag, STANDARD_GENRES}; pub use crate::types::*; pub(crate) use crate::atom::AtomData; #[macro_use] mod atom; mod error; mod tag; mod types;