gstreamer_tag/auto/flags.rs
1// This file was generated by gir (https://github.com/gtk-rs/gir)
2// from gir-files (https://github.com/gtk-rs/gir-files)
3// from gst-gir-files (https://gitlab.freedesktop.org/gstreamer/gir-files-rs.git)
4// DO NOT EDIT
5
6use crate::ffi;
7use glib::{bitflags::bitflags, prelude::*, translate::*};
8
9bitflags! {
10 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
11 #[doc(alias = "GstTagLicenseFlags")]
12 pub struct TagLicenseFlags: u32 {
13 #[doc(alias = "GST_TAG_LICENSE_PERMITS_REPRODUCTION")]
14 const PERMITS_REPRODUCTION = ffi::GST_TAG_LICENSE_PERMITS_REPRODUCTION as _;
15 #[doc(alias = "GST_TAG_LICENSE_PERMITS_DISTRIBUTION")]
16 const PERMITS_DISTRIBUTION = ffi::GST_TAG_LICENSE_PERMITS_DISTRIBUTION as _;
17 #[doc(alias = "GST_TAG_LICENSE_PERMITS_DERIVATIVE_WORKS")]
18 const PERMITS_DERIVATIVE_WORKS = ffi::GST_TAG_LICENSE_PERMITS_DERIVATIVE_WORKS as _;
19 #[doc(alias = "GST_TAG_LICENSE_PERMITS_SHARING")]
20 const PERMITS_SHARING = ffi::GST_TAG_LICENSE_PERMITS_SHARING as _;
21 #[doc(alias = "GST_TAG_LICENSE_REQUIRES_NOTICE")]
22 const REQUIRES_NOTICE = ffi::GST_TAG_LICENSE_REQUIRES_NOTICE as _;
23 #[doc(alias = "GST_TAG_LICENSE_REQUIRES_ATTRIBUTION")]
24 const REQUIRES_ATTRIBUTION = ffi::GST_TAG_LICENSE_REQUIRES_ATTRIBUTION as _;
25 #[doc(alias = "GST_TAG_LICENSE_REQUIRES_SHARE_ALIKE")]
26 const REQUIRES_SHARE_ALIKE = ffi::GST_TAG_LICENSE_REQUIRES_SHARE_ALIKE as _;
27 #[doc(alias = "GST_TAG_LICENSE_REQUIRES_SOURCE_CODE")]
28 const REQUIRES_SOURCE_CODE = ffi::GST_TAG_LICENSE_REQUIRES_SOURCE_CODE as _;
29 #[doc(alias = "GST_TAG_LICENSE_REQUIRES_COPYLEFT")]
30 const REQUIRES_COPYLEFT = ffi::GST_TAG_LICENSE_REQUIRES_COPYLEFT as _;
31 #[doc(alias = "GST_TAG_LICENSE_REQUIRES_LESSER_COPYLEFT")]
32 const REQUIRES_LESSER_COPYLEFT = ffi::GST_TAG_LICENSE_REQUIRES_LESSER_COPYLEFT as _;
33 #[doc(alias = "GST_TAG_LICENSE_PROHIBITS_COMMERCIAL_USE")]
34 const PROHIBITS_COMMERCIAL_USE = ffi::GST_TAG_LICENSE_PROHIBITS_COMMERCIAL_USE as _;
35 #[doc(alias = "GST_TAG_LICENSE_PROHIBITS_HIGH_INCOME_NATION_USE")]
36 const PROHIBITS_HIGH_INCOME_NATION_USE = ffi::GST_TAG_LICENSE_PROHIBITS_HIGH_INCOME_NATION_USE as _;
37 #[doc(alias = "GST_TAG_LICENSE_CREATIVE_COMMONS_LICENSE")]
38 const CREATIVE_COMMONS_LICENSE = ffi::GST_TAG_LICENSE_CREATIVE_COMMONS_LICENSE as _;
39 #[doc(alias = "GST_TAG_LICENSE_FREE_SOFTWARE_FOUNDATION_LICENSE")]
40 const FREE_SOFTWARE_FOUNDATION_LICENSE = ffi::GST_TAG_LICENSE_FREE_SOFTWARE_FOUNDATION_LICENSE as _;
41 }
42}
43
44#[doc(hidden)]
45impl IntoGlib for TagLicenseFlags {
46 type GlibType = ffi::GstTagLicenseFlags;
47
48 #[inline]
49 fn into_glib(self) -> ffi::GstTagLicenseFlags {
50 self.bits()
51 }
52}
53
54#[doc(hidden)]
55impl FromGlib<ffi::GstTagLicenseFlags> for TagLicenseFlags {
56 #[inline]
57 unsafe fn from_glib(value: ffi::GstTagLicenseFlags) -> Self {
58 skip_assert_initialized!();
59 Self::from_bits_truncate(value)
60 }
61}
62
63impl StaticType for TagLicenseFlags {
64 #[inline]
65 #[doc(alias = "gst_tag_license_flags_get_type")]
66 fn static_type() -> glib::Type {
67 unsafe { from_glib(ffi::gst_tag_license_flags_get_type()) }
68 }
69}
70
71impl glib::HasParamSpec for TagLicenseFlags {
72 type ParamSpec = glib::ParamSpecFlags;
73 type SetValue = Self;
74 type BuilderFn = fn(&str) -> glib::ParamSpecFlagsBuilder<Self>;
75
76 fn param_spec_builder() -> Self::BuilderFn {
77 Self::ParamSpec::builder
78 }
79}
80
81impl glib::value::ValueType for TagLicenseFlags {
82 type Type = Self;
83}
84
85unsafe impl<'a> glib::value::FromValue<'a> for TagLicenseFlags {
86 type Checker = glib::value::GenericValueTypeChecker<Self>;
87
88 #[inline]
89 unsafe fn from_value(value: &'a glib::Value) -> Self {
90 skip_assert_initialized!();
91 unsafe { from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0)) }
92 }
93}
94
95impl ToValue for TagLicenseFlags {
96 #[inline]
97 fn to_value(&self) -> glib::Value {
98 let mut value = glib::Value::for_value_type::<Self>();
99 unsafe {
100 glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
101 }
102 value
103 }
104
105 #[inline]
106 fn value_type(&self) -> glib::Type {
107 Self::static_type()
108 }
109}
110
111impl From<TagLicenseFlags> for glib::Value {
112 #[inline]
113 fn from(v: TagLicenseFlags) -> Self {
114 skip_assert_initialized!();
115 ToValue::to_value(&v)
116 }
117}