cogl/
user_data_key.rs

1use glib::translate::*;
2use std::mem;
3
4#[repr(C)]
5#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
6pub struct UserDataKey {
7    pub unused: i32,
8}
9
10#[doc(hidden)]
11impl Uninitialized for UserDataKey {
12    #[inline]
13    unsafe fn uninitialized() -> Self {
14        mem::zeroed()
15    }
16}
17
18#[doc(hidden)]
19impl<'a> ToGlibPtr<'a, *const ffi::CoglUserDataKey> for UserDataKey {
20    type Storage = &'a Self;
21
22    #[inline]
23    fn to_glib_none(&'a self) -> Stash<'a, *const ffi::CoglUserDataKey, Self> {
24        let ptr: *const UserDataKey = &*self;
25        Stash(ptr as *const ffi::CoglUserDataKey, self)
26    }
27}
28
29#[doc(hidden)]
30impl<'a> ToGlibPtrMut<'a, *mut ffi::CoglUserDataKey> for UserDataKey {
31    type Storage = &'a mut Self;
32
33    #[inline]
34    fn to_glib_none_mut(&'a mut self) -> StashMut<'a, *mut ffi::CoglUserDataKey, Self> {
35        let ptr: *mut UserDataKey = &mut *self;
36        StashMut(ptr as *mut ffi::CoglUserDataKey, self)
37    }
38}
39
40#[doc(hidden)]
41impl FromGlibPtrNone<*const ffi::CoglUserDataKey> for UserDataKey {
42    unsafe fn from_glib_none(ptr: *const ffi::CoglUserDataKey) -> Self {
43        *(ptr as *const UserDataKey)
44    }
45}
46
47#[doc(hidden)]
48impl FromGlibPtrNone<*mut ffi::CoglUserDataKey> for UserDataKey {
49    unsafe fn from_glib_none(ptr: *mut ffi::CoglUserDataKey) -> Self {
50        *(ptr as *mut UserDataKey)
51    }
52}
53
54#[doc(hidden)]
55impl FromGlibPtrBorrow<*mut ffi::CoglUserDataKey> for UserDataKey {
56    unsafe fn from_glib_borrow(ptr: *mut ffi::CoglUserDataKey) -> glib::translate::Borrowed<Self> {
57        glib::translate::Borrowed::new(*(ptr as *mut UserDataKey))
58    }
59}
60
61#[doc(hidden)]
62impl FromGlibPtrBorrow<*const ffi::CoglUserDataKey> for UserDataKey {
63    unsafe fn from_glib_borrow(
64        ptr: *const ffi::CoglUserDataKey,
65    ) -> glib::translate::Borrowed<Self> {
66        glib::translate::Borrowed::new(*(ptr as *const UserDataKey))
67    }
68}