Struct gdk4::ContentFormats
source · [−]#[repr(transparent)]pub struct ContentFormats { /* private fields */ }
Expand description
The ContentFormats
structure is used to advertise and negotiate the
format of content.
You will encounter ContentFormats
when interacting with objects
controlling operations that pass data between different widgets, window
or application, like Drag
, Drop
,
Clipboard
or ContentProvider
.
GDK supports content in 2 forms: GType
and mime type.
Using GTypes
is meant only for in-process content transfers. Mime types
are meant to be used for data passing both in-process and out-of-process.
The details of how data is passed is described in the documentation of
the actual implementations. To transform between the two forms,
ContentSerializer
and ContentDeserializer
are used.
A ContentFormats
describes a set of possible formats content can be
exchanged in. It is assumed that this set is ordered. GTypes
are more
important than mime types. Order between different GTypes
or mime types
is the order they were added in, most important first. Functions that
care about order, such as union()
, will describe
in their documentation how they interpret that order, though in general the
order of the first argument is considered the primary order of the result,
followed by the order of further arguments.
For debugging purposes, the function to_str()
exists. It will print a comma-separated list of formats from most important
to least important.
ContentFormats
is an immutable struct. After creation, you cannot change
the types it represents. Instead, new ContentFormats
have to be created.
The ContentFormatsBuilder
structure is meant to help in this
endeavor.
Implementations
sourceimpl ContentFormats
impl ContentFormats
sourcepub fn new(mime_types: &[&str]) -> ContentFormats
pub fn new(mime_types: &[&str]) -> ContentFormats
Creates a new ContentFormats
from an array of mime types.
The mime types must be valid and different from each other or the
behavior of the return value is undefined. If you cannot guarantee
this, use ContentFormatsBuilder
instead.
mime_types
Pointer to an array of mime types
Returns
the new ContentFormats
.
sourcepub fn for_type(type_: Type) -> ContentFormats
pub fn for_type(type_: Type) -> ContentFormats
sourcepub fn contains_type(&self, type_: Type) -> bool
pub fn contains_type(&self, type_: Type) -> bool
sourcepub fn contain_mime_type(&self, mime_type: &str) -> bool
pub fn contain_mime_type(&self, mime_type: &str) -> bool
sourcepub fn mime_types(&self) -> Vec<GString>
pub fn mime_types(&self) -> Vec<GString>
pub fn match_(&self, second: &ContentFormats) -> bool
sourcepub fn match_type(&self, second: &ContentFormats) -> Type
pub fn match_type(&self, second: &ContentFormats) -> Type
Finds the first GType
from @self that is also contained
in @second.
If no matching GType
is found, G_TYPE_INVALID
is returned.
second
the ContentFormats
to intersect with
Returns
The first common GType
or G_TYPE_INVALID
if none.
sourcepub fn match_mime_type(&self, second: &ContentFormats) -> Option<GString>
pub fn match_mime_type(&self, second: &ContentFormats) -> Option<GString>
Finds the first mime type from @self that is also contained in @second.
If no matching mime type is found, None
is returned.
second
the ContentFormats
to intersect with
Returns
The first common mime type or None
if none
sourcepub fn union(&self, second: &ContentFormats) -> ContentFormats
pub fn union(&self, second: &ContentFormats) -> ContentFormats
Append all missing types from @second to @self, in the order they had in @second.
second
the ContentFormats
to merge from
Returns
a new ContentFormats
sourcepub fn union_deserialize_types(&self) -> ContentFormats
pub fn union_deserialize_types(&self) -> ContentFormats
Add GTypes for mime types in @self for which deserializers are registered.
Returns
a new ContentFormats
sourcepub fn union_deserialize_mime_types(&self) -> ContentFormats
pub fn union_deserialize_mime_types(&self) -> ContentFormats
Add mime types for GTypes in @self for which deserializers are registered.
Returns
a new ContentFormats
sourcepub fn union_serialize_types(&self) -> ContentFormats
pub fn union_serialize_types(&self) -> ContentFormats
Add GTypes for the mime types in @self for which serializers are registered.
Returns
a new ContentFormats
sourcepub fn union_serialize_mime_types(&self) -> ContentFormats
pub fn union_serialize_mime_types(&self) -> ContentFormats
Add mime types for GTypes in @self for which serializers are registered.
Returns
a new ContentFormats
sourcepub fn parse(string: &str) -> Result<ContentFormats, BoolError>
Available on crate feature v4_4
only.
pub fn parse(string: &str) -> Result<ContentFormats, BoolError>
v4_4
only.Parses the given @string into ContentFormats
and
returns the formats.
Strings printed via to_str()
can be read in again successfully using this function.
If @string does not describe valid content formats, None
is returned.
string
the string to parse
Returns
the content formats if @string is valid
sourceimpl ContentFormats
impl ContentFormats
sourcepub fn builder() -> ContentFormatsBuilder
pub fn builder() -> ContentFormatsBuilder
Creates a new builder-pattern struct instance to construct ContentFormats
objects.
This method returns an instance of ContentFormatsBuilder
which can be used to create ContentFormats
objects.
Trait Implementations
sourceimpl Clone for ContentFormats
impl Clone for ContentFormats
sourceimpl Debug for ContentFormats
impl Debug for ContentFormats
sourceimpl Display for ContentFormats
impl Display for ContentFormats
sourceimpl FromStr for ContentFormats
Available on crate feature v4_4
only.
impl FromStr for ContentFormats
v4_4
only.sourceimpl Hash for ContentFormats
impl Hash for ContentFormats
sourceimpl Ord for ContentFormats
impl Ord for ContentFormats
sourceimpl PartialEq<ContentFormats> for ContentFormats
impl PartialEq<ContentFormats> for ContentFormats
sourcefn eq(&self, other: &ContentFormats) -> bool
fn eq(&self, other: &ContentFormats) -> bool
This method tests for self
and other
values to be equal, and is used
by ==
. Read more
sourcefn ne(&self, other: &ContentFormats) -> bool
fn ne(&self, other: &ContentFormats) -> bool
This method tests for !=
.
sourceimpl PartialOrd<ContentFormats> for ContentFormats
impl PartialOrd<ContentFormats> for ContentFormats
sourcefn partial_cmp(&self, other: &ContentFormats) -> Option<Ordering>
fn partial_cmp(&self, other: &ContentFormats) -> Option<Ordering>
This method returns an ordering between self
and other
values if one exists. Read more
1.0.0 · sourcefn lt(&self, other: &Rhs) -> bool
fn lt(&self, other: &Rhs) -> bool
This method tests less than (for self
and other
) and is used by the <
operator. Read more
1.0.0 · sourcefn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
sourceimpl StaticType for ContentFormats
impl StaticType for ContentFormats
sourcefn static_type() -> Type
fn static_type() -> Type
Returns the type identifier of Self
.
impl Eq for ContentFormats
impl StructuralEq for ContentFormats
impl StructuralPartialEq for ContentFormats
Auto Trait Implementations
impl RefUnwindSafe for ContentFormats
impl !Send for ContentFormats
impl !Sync for ContentFormats
impl Unpin for ContentFormats
impl UnwindSafe for ContentFormats
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> StaticTypeExt for T where
T: StaticType,
impl<T> StaticTypeExt for T where
T: StaticType,
sourcefn ensure_type()
fn ensure_type()
Ensures that the type has been registered with the type system.
sourceimpl<T> ToClosureReturnValue for T where
T: ToValue,
impl<T> ToClosureReturnValue for T where
T: ToValue,
fn to_closure_return_value(&self) -> Option<Value>
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more