Skip to main content

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}