gstreamer_tag/auto/
flags.rs1use crate::ffi;
7use glib::{bitflags::bitflags, prelude::*, translate::*};
8
9bitflags! {
10 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
12 #[doc(alias = "GstTagLicenseFlags")]
13 pub struct TagLicenseFlags: u32 {
14 #[doc(alias = "GST_TAG_LICENSE_PERMITS_REPRODUCTION")]
17 const PERMITS_REPRODUCTION = ffi::GST_TAG_LICENSE_PERMITS_REPRODUCTION as _;
18 #[doc(alias = "GST_TAG_LICENSE_PERMITS_DISTRIBUTION")]
21 const PERMITS_DISTRIBUTION = ffi::GST_TAG_LICENSE_PERMITS_DISTRIBUTION as _;
22 #[doc(alias = "GST_TAG_LICENSE_PERMITS_DERIVATIVE_WORKS")]
25 const PERMITS_DERIVATIVE_WORKS = ffi::GST_TAG_LICENSE_PERMITS_DERIVATIVE_WORKS as _;
26 #[doc(alias = "GST_TAG_LICENSE_PERMITS_SHARING")]
29 const PERMITS_SHARING = ffi::GST_TAG_LICENSE_PERMITS_SHARING as _;
30 #[doc(alias = "GST_TAG_LICENSE_REQUIRES_NOTICE")]
33 const REQUIRES_NOTICE = ffi::GST_TAG_LICENSE_REQUIRES_NOTICE as _;
34 #[doc(alias = "GST_TAG_LICENSE_REQUIRES_ATTRIBUTION")]
37 const REQUIRES_ATTRIBUTION = ffi::GST_TAG_LICENSE_REQUIRES_ATTRIBUTION as _;
38 #[doc(alias = "GST_TAG_LICENSE_REQUIRES_SHARE_ALIKE")]
41 const REQUIRES_SHARE_ALIKE = ffi::GST_TAG_LICENSE_REQUIRES_SHARE_ALIKE as _;
42 #[doc(alias = "GST_TAG_LICENSE_REQUIRES_SOURCE_CODE")]
46 const REQUIRES_SOURCE_CODE = ffi::GST_TAG_LICENSE_REQUIRES_SOURCE_CODE as _;
47 #[doc(alias = "GST_TAG_LICENSE_REQUIRES_COPYLEFT")]
51 const REQUIRES_COPYLEFT = ffi::GST_TAG_LICENSE_REQUIRES_COPYLEFT as _;
52 #[doc(alias = "GST_TAG_LICENSE_REQUIRES_LESSER_COPYLEFT")]
57 const REQUIRES_LESSER_COPYLEFT = ffi::GST_TAG_LICENSE_REQUIRES_LESSER_COPYLEFT as _;
58 #[doc(alias = "GST_TAG_LICENSE_PROHIBITS_COMMERCIAL_USE")]
61 const PROHIBITS_COMMERCIAL_USE = ffi::GST_TAG_LICENSE_PROHIBITS_COMMERCIAL_USE as _;
62 #[doc(alias = "GST_TAG_LICENSE_PROHIBITS_HIGH_INCOME_NATION_USE")]
65 const PROHIBITS_HIGH_INCOME_NATION_USE = ffi::GST_TAG_LICENSE_PROHIBITS_HIGH_INCOME_NATION_USE as _;
66 #[doc(alias = "GST_TAG_LICENSE_CREATIVE_COMMONS_LICENSE")]
69 const CREATIVE_COMMONS_LICENSE = ffi::GST_TAG_LICENSE_CREATIVE_COMMONS_LICENSE as _;
70 #[doc(alias = "GST_TAG_LICENSE_FREE_SOFTWARE_FOUNDATION_LICENSE")]
73 const FREE_SOFTWARE_FOUNDATION_LICENSE = ffi::GST_TAG_LICENSE_FREE_SOFTWARE_FOUNDATION_LICENSE as _;
74 }
75}
76
77#[doc(hidden)]
78impl IntoGlib for TagLicenseFlags {
79 type GlibType = ffi::GstTagLicenseFlags;
80
81 #[inline]
82 fn into_glib(self) -> ffi::GstTagLicenseFlags {
83 self.bits()
84 }
85}
86
87#[doc(hidden)]
88impl FromGlib<ffi::GstTagLicenseFlags> for TagLicenseFlags {
89 #[inline]
90 unsafe fn from_glib(value: ffi::GstTagLicenseFlags) -> Self {
91 skip_assert_initialized!();
92 Self::from_bits_truncate(value)
93 }
94}
95
96impl StaticType for TagLicenseFlags {
97 #[inline]
98 #[doc(alias = "gst_tag_license_flags_get_type")]
99 fn static_type() -> glib::Type {
100 unsafe { from_glib(ffi::gst_tag_license_flags_get_type()) }
101 }
102}
103
104impl glib::HasParamSpec for TagLicenseFlags {
105 type ParamSpec = glib::ParamSpecFlags;
106 type SetValue = Self;
107 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
108
109 fn param_spec_builder() -> Self::BuilderFn {
110 Self::ParamSpec::builder
111 }
112}
113
114impl glib::value::ValueType for TagLicenseFlags {
115 type Type = Self;
116}
117
118unsafe impl<'a> glib::value::FromValue<'a> for TagLicenseFlags {
119 type Checker = glib::value::GenericValueTypeChecker<Self>;
120
121 #[inline]
122 unsafe fn from_value(value: &'a glib::Value) -> Self {
123 skip_assert_initialized!();
124 unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
125 }
126}
127
128impl ToValue for TagLicenseFlags {
129 #[inline]
130 fn to_value(&self) -> glib::Value {
131 let mut value = glib::Value::for_value_type::<Self>();
132 unsafe {
133 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
134 }
135 value
136 }
137
138 #[inline]
139 fn value_type(&self) -> glib::Type {
140 Self::static_type()
141 }
142}
143
144impl From<TagLicenseFlags> for glib::Value {
145 #[inline]
146 fn from(v: TagLicenseFlags) -> Self {
147 skip_assert_initialized!();
148 ToValue::to_value(&v)
149 }
150}