glib/auto/
time_zone.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// DO NOT EDIT
4
5use glib_sys;
6use translate::*;
7use GString;
8use TimeType;
9
10glib_wrapper! {
11    #[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
12    pub struct TimeZone(Shared<glib_sys::GTimeZone>);
13
14    match fn {
15        ref => |ptr| glib_sys::g_time_zone_ref(ptr),
16        unref => |ptr| glib_sys::g_time_zone_unref(ptr),
17        get_type => || glib_sys::g_time_zone_get_type(),
18    }
19}
20
21impl TimeZone {
22    pub fn new(identifier: Option<&str>) -> TimeZone {
23        unsafe { from_glib_full(glib_sys::g_time_zone_new(identifier.to_glib_none().0)) }
24    }
25
26    pub fn new_local() -> TimeZone {
27        unsafe { from_glib_full(glib_sys::g_time_zone_new_local()) }
28    }
29
30    #[cfg(any(feature = "v2_58", feature = "dox"))]
31    pub fn new_offset(seconds: i32) -> TimeZone {
32        unsafe { from_glib_full(glib_sys::g_time_zone_new_offset(seconds)) }
33    }
34
35    pub fn new_utc() -> TimeZone {
36        unsafe { from_glib_full(glib_sys::g_time_zone_new_utc()) }
37    }
38
39    pub fn find_interval(&self, type_: TimeType, time_: i64) -> i32 {
40        unsafe {
41            glib_sys::g_time_zone_find_interval(self.to_glib_none().0, type_.to_glib(), time_)
42        }
43    }
44
45    pub fn get_abbreviation(&self, interval: i32) -> Option<GString> {
46        unsafe {
47            from_glib_none(glib_sys::g_time_zone_get_abbreviation(
48                self.to_glib_none().0,
49                interval,
50            ))
51        }
52    }
53
54    #[cfg(any(feature = "v2_58", feature = "dox"))]
55    pub fn get_identifier(&self) -> Option<GString> {
56        unsafe { from_glib_none(glib_sys::g_time_zone_get_identifier(self.to_glib_none().0)) }
57    }
58
59    pub fn get_offset(&self, interval: i32) -> i32 {
60        unsafe { glib_sys::g_time_zone_get_offset(self.to_glib_none().0, interval) }
61    }
62
63    pub fn is_dst(&self, interval: i32) -> bool {
64        unsafe {
65            from_glib(glib_sys::g_time_zone_is_dst(
66                self.to_glib_none().0,
67                interval,
68            ))
69        }
70    }
71}
72
73unsafe impl Send for TimeZone {}
74unsafe impl Sync for TimeZone {}