[][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 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 get<'structure, 'name, T: FromValueOptional<'structure>>(
    &'structure self,
    name: &'name str
) -> Result<Option<T>, GetError<'name>>
[src]

pub fn get_optional<'structure, 'name, T: FromValueOptional<'structure>>(
    &'structure self,
    name: &'name str
) -> Result<Option<T>, GetError<'name>>
[src]

pub fn get_some<'structure, 'name, T: FromValue<'structure>>(
    &'structure self,
    name: &'name str
) -> Result<T, GetError<'name>>
[src]

pub fn get_value<'structure, 'name>(
    &'structure self,
    name: &'name str
) -> Result<&SendValue, GetError<'name>>
[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]

pub fn fields(&self) -> FieldIterator[src]

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 AsMut<StructureRef> for Structure[src]

impl AsRef<StructureRef> for Structure[src]

impl Borrow<StructureRef> for Structure[src]

impl BorrowMut<StructureRef> for Structure[src]

impl Clone for Structure[src]

impl Debug for Structure[src]

impl Deref for Structure[src]

type Target = StructureRef

The resulting type after dereferencing.

impl DerefMut for Structure[src]

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

impl Display for Structure[src]

impl Drop for Structure[src]

impl Eq for Structure[src]

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

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

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

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

impl FromStr for Structure[src]

type Err = BoolError

The associated error which can be returned from parsing.

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

impl GlibPtrDefault for Structure[src]

impl PartialEq<Structure> for Structure[src]

impl PartialEq<StructureRef> for Structure[src]

impl Send for Structure[src]

impl Serialize for Structure[src]

impl SetValue for Structure[src]

impl SetValueOptional for Structure[src]

impl StaticType for Structure[src]

impl Sync for Structure[src]

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

type Storage = &'a Self

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

type Storage = &'a Self

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

type Storage = &'a mut Self

Auto Trait Implementations

impl RefUnwindSafe for Structure

impl Unpin for Structure

impl UnwindSafe for Structure

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> DeserializeOwned for T where
    T: Deserialize<'de>, 
[src]

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

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

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

impl<'a, T> ToGlibContainerFromSlice<'a, *const GPtrArray> 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, *mut GList> for T where
    T: GlibPtrDefault + ToGlibPtr<'a, <T as GlibPtrDefault>::GlibType>, 
[src]

impl<'a, T> ToGlibContainerFromSlice<'a, *mut GPtrArray> for T where
    T: GlibPtrDefault + ToGlibPtr<'a, <T as GlibPtrDefault>::GlibType>, 
[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> ToString for T where
    T: Display + ?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.