diff options
Diffstat (limited to 'vendor/core-foundation/src/set.rs')
-rw-r--r-- | vendor/core-foundation/src/set.rs | 53 |
1 files changed, 0 insertions, 53 deletions
diff --git a/vendor/core-foundation/src/set.rs b/vendor/core-foundation/src/set.rs deleted file mode 100644 index eb1d357a0..000000000 --- a/vendor/core-foundation/src/set.rs +++ /dev/null @@ -1,53 +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. - -//! An immutable bag of elements. - -pub use core_foundation_sys::set::*; -use core_foundation_sys::base::{CFTypeRef, CFRelease, kCFAllocatorDefault}; - -use base::{CFIndexConvertible, TCFType}; - -use std::os::raw::c_void; -use std::marker::PhantomData; - -/// An immutable bag of elements. -pub struct CFSet<T = *const c_void>(CFSetRef, PhantomData<T>); - -impl<T> Drop for CFSet<T> { - fn drop(&mut self) { - unsafe { CFRelease(self.as_CFTypeRef()) } - } -} - -impl_TCFType!(CFSet<T>, CFSetRef, CFSetGetTypeID); -impl_CFTypeDescription!(CFSet); - -impl CFSet { - /// Creates a new set from a list of `CFType` instances. - pub fn from_slice<T>(elems: &[T]) -> CFSet<T> where T: TCFType { - unsafe { - let elems: Vec<CFTypeRef> = elems.iter().map(|elem| elem.as_CFTypeRef()).collect(); - let set_ref = CFSetCreate(kCFAllocatorDefault, - elems.as_ptr(), - elems.len().to_CFIndex(), - &kCFTypeSetCallBacks); - TCFType::wrap_under_create_rule(set_ref) - } - } -} - -impl<T> CFSet<T> { - /// Get the number of elements in the CFSet - pub fn len(&self) -> usize { - unsafe { - CFSetGetCount(self.0) as usize - } - } -} |