fn remove_extended_text(&mut self, description: Option<&str>, value: Option<&str>) {
        self.frames_vec_mut().retain(|frame| {
            if frame.id() == "TXXX" {
                match *frame.content() {
                    Content::ExtendedText(ref ext) => {
                        let descr_match = description.map(|v| v == ext.description).unwrap_or(true);
                        let value_match = value.map(|v| v == ext.value).unwrap_or(true);
                        // True if we want to keep the frame.
                        !(descr_match && value_match)
                    }
                    _ => {
                        // A TXXX frame must always have content of the ExtendedText type. Remove
                        // frames that do not fit this requirement.
                        false
                    }
                }
            } else {
                true
            }
        });
    }
/// Removes the user defined text frame (TXXX) with the specified key and value.
///
/// A key or value may be `None` to specify a wildcard value.
///
/// # Example
/// ```
/// use id3::{Tag, TagLike};
///
/// let mut tag = Tag::new();
///
/// tag.add_extended_text("key1", "value1");
/// tag.add_extended_text("key2", "value2");
/// tag.add_extended_text("key3", "value2");
/// tag.add_extended_text("key4", "value3");
/// tag.add_extended_text("key5", "value4");
/// assert_eq!(tag.extended_texts().count(), 5);
///
/// tag.remove_extended_text(Some("key1"), None);
/// assert_eq!(tag.extended_texts().count(), 4);
///
/// tag.remove_extended_text(None, Some("value2"));
/// assert_eq!(tag.extended_texts().count(), 2);
///
/// tag.remove_extended_text(Some("key4"), Some("value3"));
/// assert_eq!(tag.extended_texts().count(), 1);
///
/// tag.remove_extended_text(None, None);
/// assert_eq!(tag.extended_texts().count(), 0);
/// ```
Removes the user defined text frame (TXXX) with the specified key and value.
A key or value may be `None` to specify a wildcard value.
Removes the user defined text frame ( TXXX ) with the specified key and value . A key or value may be ` None ` to specify a wildcard value .
fn remove_extended_text(&mut self, description: Option<&str>, value: Option<&str>) {
        self.frames_vec_mut().retain(|frame| {
            if frame.id() == "TXXX" {
                match *frame.content() {
                    Content::ExtendedText(ref ext) => {
                        let descr_match = description.map(|v| v == ext.description).unwrap_or(true);
                        let value_match = value.map(|v| v == ext.value).unwrap_or(true);
                        // True if we want to keep the frame.
                        !(descr_match && value_match)
                    }
                    _ => {
                        // A TXXX frame must always have content of the ExtendedText type. Remove
                        // frames that do not fit this requirement.
                        false
                    }
                }
            } else {
                true
            }
        });
    }
fn remove_extended_text ( & mut self , description : Option < & str > , value : Option < & str > ) { self . frames_vec_mut ( ) . retain ( | frame | { if frame . id ( ) == " " { match * frame . content ( ) { Content :: ExtendedText ( ref ext ) => { let descr_match = description . map ( | v | v == ext . description ) . unwrap_or ( true ) ; let value_match = value . map ( | v | v == ext . value ) . unwrap_or ( true ) ; // True if we want to keep the frame. ! ( descr_match && value_match ) } _ => { // A TXXX frame must always have content of the ExtendedText type. Remove // frames that do not fit this requirement. false } } } else { true } } ) ; }
Removes the user defined text frame (TXXX) with the specified key and value.
Removes the user defined text frame ( TXXX ) with the specified key and value .
&mut self
description
Option<&str>
value
Option<&str>
&mut self
description
Option<&str>
value
Option<&str>
example


let mut tag = Tag::new().



tag.remove_extended_text(Some("key1"), None);
assert_eq!(tag.extended_texts().count(), 4).

tag.remove_extended_text(None, Some("value2"));
assert_eq!(tag.extended_texts().count(), 2).

tag.remove_extended_text(Some("key4"), Some("value3"));
assert_eq!(tag.extended_texts().count(), 1).

tag.remove_extended_text(None, None);
assert_eq!(tag.extended_texts().count(), 0);
```
let mut tag = Tag :: new () . tag . remove_extended_text ( Some ( " key1 " ) None ) ; assert_eq! ( tag . extended_texts () . count () 4 ) . tag . remove_extended_text ( None Some ( " value2 " )) ; assert_eq! ( tag . extended_texts () . count () 2 ) . tag . remove_extended_text ( Some ( " key4 " ) Some ( " value3 " )) ; assert_eq! ( tag . extended_texts () . count () 1 ) . tag . remove_extended_text ( None None ) ; assert_eq! ( tag . extended_texts () . count () 0 ) ; ` ` `