summaryrefslogtreecommitdiffstats
path: root/vendor/core-foundation/src/timezone.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/core-foundation/src/timezone.rs')
-rw-r--r--vendor/core-foundation/src/timezone.rs104
1 files changed, 0 insertions, 104 deletions
diff --git a/vendor/core-foundation/src/timezone.rs b/vendor/core-foundation/src/timezone.rs
deleted file mode 100644
index a8bb2ed1d..000000000
--- a/vendor/core-foundation/src/timezone.rs
+++ /dev/null
@@ -1,104 +0,0 @@
-// Copyright 2013 The Servo Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-//! Core Foundation time zone objects.
-
-pub use core_foundation_sys::timezone::*;
-use core_foundation_sys::base::kCFAllocatorDefault;
-
-use base::TCFType;
-use date::{CFDate, CFTimeInterval};
-use string::CFString;
-
-#[cfg(feature = "with-chrono")]
-use chrono::{FixedOffset, NaiveDateTime};
-
-
-declare_TCFType!{
- /// A time zone.
- CFTimeZone, CFTimeZoneRef
-}
-impl_TCFType!(CFTimeZone, CFTimeZoneRef, CFTimeZoneGetTypeID);
-impl_CFTypeDescription!(CFTimeZone);
-
-impl Default for CFTimeZone {
- fn default() -> CFTimeZone {
- unsafe {
- let tz_ref = CFTimeZoneCopyDefault();
- TCFType::wrap_under_create_rule(tz_ref)
- }
- }
-}
-
-impl CFTimeZone {
- #[inline]
- pub fn new(interval: CFTimeInterval) -> CFTimeZone {
- unsafe {
- let tz_ref = CFTimeZoneCreateWithTimeIntervalFromGMT(kCFAllocatorDefault, interval);
- TCFType::wrap_under_create_rule(tz_ref)
- }
- }
-
- #[inline]
- pub fn system() -> CFTimeZone {
- unsafe {
- let tz_ref = CFTimeZoneCopySystem();
- TCFType::wrap_under_create_rule(tz_ref)
- }
- }
-
- pub fn seconds_from_gmt(&self, date: CFDate) -> CFTimeInterval {
- unsafe {
- CFTimeZoneGetSecondsFromGMT(self.0, date.abs_time())
- }
- }
-
- #[cfg(feature = "with-chrono")]
- pub fn offset_at_date(&self, date: NaiveDateTime) -> FixedOffset {
- let date = CFDate::from_naive_utc(date);
- FixedOffset::east(self.seconds_from_gmt(date) as i32)
- }
-
- #[cfg(feature = "with-chrono")]
- pub fn from_offset(offset: FixedOffset) -> CFTimeZone {
- CFTimeZone::new(offset.local_minus_utc() as f64)
- }
-
- /// The timezone database ID that identifies the time zone. E.g. "America/Los_Angeles" or
- /// "Europe/Paris".
- pub fn name(&self) -> CFString {
- unsafe {
- CFString::wrap_under_get_rule(CFTimeZoneGetName(self.0))
- }
- }
-}
-
-#[cfg(test)]
-mod test {
- use super::CFTimeZone;
-
- #[cfg(feature = "with-chrono")]
- use chrono::{NaiveDateTime, FixedOffset};
-
- #[test]
- fn timezone_comparison() {
- let system = CFTimeZone::system();
- let default = CFTimeZone::default();
- assert_eq!(system, default);
- }
-
- #[test]
- #[cfg(feature = "with-chrono")]
- fn timezone_chrono_conversion() {
- let offset = FixedOffset::west(28800);
- let tz = CFTimeZone::from_offset(offset);
- let converted = tz.offset_at_date(NaiveDateTime::from_timestamp(0, 0));
- assert_eq!(offset, converted);
- }
-}