Struct id3::v1::Tag

source ·
pub struct Tag {
    pub title: String,
    pub artist: String,
    pub album: String,
    pub year: String,
    pub comment: String,
    pub track: Option<u8>,
    pub genre_id: u8,
    pub speed: Option<u8>,
    pub genre_str: Option<String>,
    pub start_time: Option<String>,
    pub end_time: Option<String>,
}
Expand description

A structure containing ID3v1 metadata.

Fields§

§title: String

The full title (ID3v1 + extension if present).

§artist: String

The full artist (ID3v1 + extension if present).

§album: String

The full album (ID3v1 + extension if present).

§year: String

The release year as four digits.

The ID3v1 format can only represent values between 0 and 9999 inclusive.

§comment: String

A free-form comment.

§track: Option<u8>

Number of the track. ID3v1.1 data.

§genre_id: u8

The genre mapping is standardized up to 79, altough this implementation uses the Winamp extended genre list: https://de.wikipedia.org/wiki/Liste_der_ID3v1-Genres

§speed: Option<u8>

1 (slow), 2, 3, 4 (fast) or None when not set. ID3v1 extended data.

§genre_str: Option<String>

Free-form genre string. ID3v1 extended data.

§start_time: Option<String>

The real start of the track, mmm:ss. ID3v1 extended data.

§end_time: Option<String>

The real end of the track, mmm:ss. ID3v1 extended data.

Implementations§

source§

impl Tag

source

pub fn new() -> Tag

Creates a new empty ID3v1 tag.

source

pub fn is_candidate(reader: impl Read + Seek) -> Result<bool>

Checks whether the reader contains an ID3v1 tag.

The reader position will be reset back to the previous position before returning.

source

pub fn read_from(reader: impl Read + Seek) -> Result<Tag>

Seeks to and reads a ID3v1 tag from the reader.

source

pub fn read_from_path(path: impl AsRef<Path>) -> Result<Tag>

Attempts to read an ID3v1 tag from the file at the indicated path.

source

pub fn remove(file: &mut File) -> Result<bool>

👎Deprecated: Use remove_from_file

Removes an ID3v1 tag plus possible extended data if any.

The file cursor position will be reset back to the previous position before returning.

Returns true if the file initially contained a tag.

source

pub fn remove_from_file(file: impl StorageFile) -> Result<bool>

Removes an ID3v1 tag plus possible extended data if any.

The file cursor position will be reset back to the previous position before returning.

Returns true if the file initially contained a tag.

source

pub fn remove_from_path(path: impl AsRef<Path>) -> Result<bool>

Removes an ID3v1 tag plus possible extended data if any.

Returns true if the file initially contained a tag.

source

pub fn genre(&self) -> Option<&str>

Returns genre_str, falling back to translating genre_id to a string.

Trait Implementations§

source§

impl Clone for Tag

source§

fn clone(&self) -> Tag

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Tag

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for Tag

source§

fn default() -> Tag

Returns the “default value” for a type. Read more
source§

impl From<Tag> for Tag

source§

fn from(tag_v1: Tag) -> Tag

Converts to this type from the input type.
source§

impl Hash for Tag

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq for Tag

source§

fn eq(&self, other: &Tag) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Eq for Tag

source§

impl StructuralPartialEq for Tag

Auto Trait Implementations§

§

impl RefUnwindSafe for Tag

§

impl Send for Tag

§

impl Sync for Tag

§

impl Unpin for Tag

§

impl UnwindSafe for Tag

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.