[][src]Struct gstreamer::structure::Structure

pub struct Structure(_, _);

A Structure is a collection of key/value pairs. The keys are expressed as GQuarks and the values can be of any GType.

In addition to the key/value pairs, a Structure also has a name. The name starts with a letter and can be filled by letters, numbers and any of "/-_.:".

Structure is used by various GStreamer subsystems to store information in a flexible and extensible way. A Structure does not have a refcount because it usually is part of a higher level object such as Caps, Message, Event, Query. It provides a means to enforce mutability using the refcount of the parent with the Structure::set_parent_refcount method.

A Structure can be created with Structure::new_empty or Structure::new, which both take a name and an optional set of key/value pairs along with the types of the values.

Field values can be changed with Structure::set_value or Structure::set.

Field values can be retrieved with Structure::get_value or the more convenient gst_structure_get_*() functions.

Fields can be removed with Structure::remove_field or Structure::remove_fields.

Strings in structures must be ASCII or UTF-8 encoded. Other encodings are not allowed. Strings may be None however.

Be aware that the current Caps / Structure serialization into string has limited support for nested Caps / Structure fields. It can only support one level of nesting. Using more levels will lead to unexpected behavior when using serialization features, such as Caps::to_string or gst_value_serialize and their counterparts.

Methods

impl Structure[src]

pub fn builder(name: &str) -> Builder[src]

pub fn new_empty(name: &str) -> Structure[src]

Creates a new, empty Structure with the given name.

See Structure::set_name for constraints on the name parameter.

Free-function: gst_structure_free

name

name of new structure

Returns

a new, empty Structure

pub fn new(name: &str, values: &[(&str, &dyn ToSendValue)]) -> Structure[src]

Creates a new Structure with the given name. Parses the list of variable arguments and sets fields to the values listed. Variable arguments should be passed as field name, field type, and value. Last variable argument should be None.

Free-function: gst_structure_free

name

name of new structure

firstfield

name of first field to set

Returns

a new Structure

pub fn from_string(s: &str) -> Option<Structure>[src]

Creates a Structure from a string representation. If end is not None, a pointer to the place inside the given string where parsing ended will be returned.

Free-function: gst_structure_free

string

a string representation of a Structure.

end

pointer to store the end of the string in.

Returns

a new Structure or None when the string could not be parsed. Free with Structure::free after use.

pub unsafe fn into_ptr(self) -> *mut GstStructure[src]

Methods from Deref<Target = StructureRef>

pub unsafe fn as_ptr(&self) -> *const GstStructure[src]

pub unsafe fn as_mut_ptr(&self) -> *mut GstStructure[src]

pub fn to_string(&self) -> String[src]

pub fn get<'a, T: FromValueOptional<'a>>(&'a self, name: &str) -> Option<T>[src]

pub fn get_value<'a>(&'a self, name: &str) -> Option<&SendValue>[src]

pub fn set<T: ToSendValue>(&mut self, name: &str, value: &T)[src]

pub fn set_value(&mut self, name: &str, value: SendValue)[src]

pub fn get_name(&self) -> &str[src]

pub fn set_name(&mut self, name: &str)[src]

pub fn has_field(&self, field: &str) -> bool[src]

pub fn has_field_with_type(&self, field: &str, type_: Type) -> bool[src]

pub fn remove_field(&mut self, field: &str)[src]

pub fn remove_fields(&mut self, fields: &[&str])[src]

pub fn remove_all_fields(&mut self)[src]

Important traits for FieldIterator<'a>
pub fn fields(&self) -> FieldIterator[src]

Important traits for Iter<'a>
pub fn iter(&self) -> Iter[src]

pub fn get_nth_field_name(&self, idx: u32) -> Option<&str>[src]

pub fn n_fields(&self) -> u32[src]

pub fn can_intersect(&self, other: &StructureRef) -> bool[src]

pub fn intersect(&self, other: &StructureRef) -> Option<Structure>[src]

pub fn is_subset(&self, superset: &StructureRef) -> bool[src]

pub fn fixate(&mut self)[src]

pub fn fixate_field(&mut self, name: &str) -> bool[src]

pub fn fixate_field_bool(&mut self, name: &str, target: bool) -> bool[src]

pub fn fixate_field_str(&mut self, name: &str, target: &str) -> bool[src]

pub fn fixate_field_nearest_double(&mut self, name: &str, target: f64) -> bool[src]

pub fn fixate_field_nearest_fraction<T: Into<Fraction>>(
    &mut self,
    name: &str,
    target: T
) -> bool
[src]

pub fn fixate_field_nearest_int(&mut self, name: &str, target: i32) -> bool[src]

Trait Implementations

impl Drop for Structure[src]

impl AsMut<StructureRef> for Structure[src]

impl AsRef<StructureRef> for Structure[src]

impl Clone for Structure[src]

fn clone_from(&mut self, source: &Self)1.0.0[src]

Performs copy-assignment from source. Read more

impl Eq for Structure[src]

impl Sync for Structure[src]

impl Send for Structure[src]

impl PartialEq<Structure> for Structure[src]

#[must_use] fn ne(&self, other: &Rhs) -> bool1.0.0[src]

This method tests for !=.

impl PartialEq<StructureRef> for Structure[src]

#[must_use] fn ne(&self, other: &Rhs) -> bool1.0.0[src]

This method tests for !=.

impl Display for Structure[src]

impl DerefMut for Structure[src]

impl Deref for Structure[src]

type Target = StructureRef

The resulting type after dereferencing.

impl Debug for Structure[src]

impl FromStr for Structure[src]

type Err = ()

The associated error which can be returned from parsing.

impl BorrowMut<StructureRef> for Structure[src]

impl Borrow<StructureRef> for Structure[src]

impl<'a> ToGlibPtr<'a, *const GstStructure> for Structure[src]

type Storage = &'a Self

fn to_glib_container(&'a self) -> Stash<'a, P, Self>[src]

Transfer: container. Read more

impl<'a> ToGlibPtr<'a, *mut GstStructure> for Structure[src]

type Storage = &'a Self

fn to_glib_container(&'a self) -> Stash<'a, P, Self>[src]

Transfer: container. Read more

impl FromGlibPtrFull<*const GstStructure> for Structure[src]

impl FromGlibPtrFull<*mut GstStructure> for Structure[src]

impl<'a> ToGlibPtrMut<'a, *mut GstStructure> for Structure[src]

type Storage = &'a mut Self

impl FromGlibPtrNone<*const GstStructure> for Structure[src]

impl FromGlibPtrNone<*mut GstStructure> for Structure[src]

impl GlibPtrDefault for Structure[src]

impl StaticType for Structure[src]

impl SetValue for Structure[src]

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

impl SetValueOptional for Structure[src]

impl Serialize for Structure[src]

impl<'de> Deserialize<'de> for Structure[src]

Blanket Implementations

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

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

type Owned = T

The resulting type after obtaining ownership.

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

impl<T> ToString for T where
    T: Display + ?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.

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

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

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

impl<'a, T> ToGlibContainerFromSlice<'a, *mut GList> for T where
    T: GlibPtrDefault + ToGlibPtr<'a, <T as GlibPtrDefault>::GlibType>, 
[src]

impl<'a, T> ToGlibContainerFromSlice<'a, *mut GArray> for T where
    T: GlibPtrDefault + ToGlibPtr<'a, <T as GlibPtrDefault>::GlibType>, 
[src]

impl<'a, T> ToGlibContainerFromSlice<'a, *const GList> for T where
    T: GlibPtrDefault + ToGlibPtr<'a, <T as GlibPtrDefault>::GlibType>, 
[src]

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

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

impl<T> DeserializeOwned for T where
    T: Deserialize<'de>, 
[src]