[][src]Enum gstreamer::TagMergeMode

#[non_exhaustive]pub enum TagMergeMode {
    Undefined,
    ReplaceAll,
    Replace,
    Append,
    Prepend,
    Keep,
    KeepAll,
    Count,
    // some variants omitted
}

The different tag merging modes are basically replace, overwrite and append, but they can be seen from two directions. Given two taglists: (A) the tags already in the element and (B) the ones that are supplied to the element ( e.g. via TagSetter::merge_tags / TagSetter::add_tags or a EventType::Tag), how are these tags merged? In the table below this is shown for the cases that a tag exists in the list (A) or does not exists (!A) and combinations thereof.

merge modeA + BA + !B!A + B!A + !B
REPLACE_ALLBøBø
REPLACEBABø
APPENDA, BABø
PREPENDB, AABø
KEEPAABø
KEEP_ALLAAøø

Variants (Non-exhaustive)

Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
Undefined

undefined merge mode

ReplaceAll

replace all tags (clear list and append)

Replace

replace tags

Append

append tags

Prepend

prepend tags

Keep

keep existing tags

KeepAll

keep all existing tags

Count

the number of merge modes

Trait Implementations

impl Clone for TagMergeMode[src]

impl Copy for TagMergeMode[src]

impl Debug for TagMergeMode[src]

impl Eq for TagMergeMode[src]

impl<'a> FromValue<'a> for TagMergeMode[src]

impl<'a> FromValueOptional<'a> for TagMergeMode[src]

impl Hash for TagMergeMode[src]

impl Ord for TagMergeMode[src]

impl PartialEq<TagMergeMode> for TagMergeMode[src]

impl PartialOrd<TagMergeMode> for TagMergeMode[src]

impl SetValue for TagMergeMode[src]

impl StaticType for TagMergeMode[src]

impl StructuralEq for TagMergeMode[src]

impl StructuralPartialEq for TagMergeMode[src]

Auto Trait Implementations

impl RefUnwindSafe for TagMergeMode

impl Send for TagMergeMode

impl Sync for TagMergeMode

impl Unpin for TagMergeMode

impl UnwindSafe for TagMergeMode

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T> ToSendValue for T where
    T: ToValue + SetValue + Send + ?Sized
[src]

impl<T> ToValue for T where
    T: SetValue + ?Sized
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.