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§
source§impl 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
source§impl 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§
source§impl Clone for ContentFormats
 
impl Clone for ContentFormats
source§impl Debug for ContentFormats
 
impl Debug for ContentFormats
source§impl Display for ContentFormats
 
impl Display for ContentFormats
source§impl From<ContentFormats> for Value
 
impl From<ContentFormats> for Value
source§fn from(s: ContentFormats) -> Self
 
fn from(s: ContentFormats) -> Self
source§impl FromStr for ContentFormats
Available on crate feature v4_4 only. 
impl FromStr for ContentFormats
v4_4 only.source§impl HasParamSpec for ContentFormats
 
impl HasParamSpec for ContentFormats
type ParamSpec = ParamSpecBoxed
§type SetValue = ContentFormats
 
type SetValue = ContentFormats
type BuilderFn = fn(_: &str) -> ParamSpecBoxedBuilder<'_, ContentFormats>
fn param_spec_builder() -> Self::BuilderFn
source§impl Hash for ContentFormats
 
impl Hash for ContentFormats
source§impl Ord for ContentFormats
 
impl Ord for ContentFormats
source§fn cmp(&self, other: &ContentFormats) -> Ordering
 
fn cmp(&self, other: &ContentFormats) -> Ordering
1.21.0 · source§fn max(self, other: Self) -> Selfwhere
    Self: Sized,
 
fn max(self, other: Self) -> Selfwhere Self: Sized,
source§impl PartialEq<ContentFormats> for ContentFormats
 
impl PartialEq<ContentFormats> for ContentFormats
source§fn eq(&self, other: &ContentFormats) -> bool
 
fn eq(&self, other: &ContentFormats) -> bool
self and other values to be equal, and is used
by ==.source§impl PartialOrd<ContentFormats> for ContentFormats
 
impl PartialOrd<ContentFormats> for ContentFormats
source§fn partial_cmp(&self, other: &ContentFormats) -> Option<Ordering>
 
fn partial_cmp(&self, other: &ContentFormats) -> Option<Ordering>
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
 
fn le(&self, other: &Rhs) -> bool
self and other) and is used by the <=
operator. Read moresource§impl StaticType for ContentFormats
 
impl StaticType for ContentFormats
source§fn static_type() -> Type
 
fn static_type() -> Type
Self.