diff options
author | Anthony Ramine <n.oxyde@gmail.com> | 2016-07-04 16:30:40 +0200 |
---|---|---|
committer | Anthony Ramine <n.oxyde@gmail.com> | 2016-07-04 16:48:14 +0200 |
commit | a5b524d5590f84428c61895b418eda7024c8e600 (patch) | |
tree | dfec847eec78e5b61dcfde29a57a1869c7a57ae9 /components/util/vec.rs | |
parent | 51ff916e09ff844eb2a1aa1fe2df9ef4b45af649 (diff) | |
download | servo-a5b524d5590f84428c61895b418eda7024c8e600.tar.gz servo-a5b524d5590f84428c61895b418eda7024c8e600.zip |
Move util::vec::ForgetfulSink to style::sink and simplify it
Diffstat (limited to 'components/util/vec.rs')
-rw-r--r-- | components/util/vec.rs | 71 |
1 files changed, 0 insertions, 71 deletions
diff --git a/components/util/vec.rs b/components/util/vec.rs index 639e1c260da..2aa6b7d4a41 100644 --- a/components/util/vec.rs +++ b/components/util/vec.rs @@ -2,10 +2,6 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -use std::marker::PhantomData; -use std::ops; -use super::smallvec::VecLike; - // TODO(pcwalton): Speed up with SIMD, or better yet, find some way to not do this. pub fn byte_swap(data: &mut [u8]) { let length = data.len(); @@ -18,70 +14,3 @@ pub fn byte_swap(data: &mut [u8]) { i += 4; } } - -/// A `VecLike` that only tracks whether or not something was ever pushed to it. -pub struct ForgetfulSink<T> { - empty: bool, - _data: PhantomData<T>, -} - -impl<T> ForgetfulSink<T> { - pub fn new() -> ForgetfulSink<T> { - ForgetfulSink { - empty: true, - _data: PhantomData, - } - } - - pub fn is_empty(&self) -> bool { - self.empty - } -} - -impl<T> ops::Deref for ForgetfulSink<T> { - type Target = [T]; - fn deref(&self) -> &[T] { - unreachable!() - } -} - -impl<T> ops::DerefMut for ForgetfulSink<T> { - fn deref_mut(&mut self) -> &mut [T] { - unreachable!() - } -} - -macro_rules! impl_index { - ($index_type: ty, $output_type: ty) => { - impl<T> ops::Index<$index_type> for ForgetfulSink<T> { - type Output = $output_type; - fn index(&self, _index: $index_type) -> &$output_type { - unreachable!() - } - } - - impl<T> ops::IndexMut<$index_type> for ForgetfulSink<T> { - fn index_mut(&mut self, _index: $index_type) -> &mut $output_type { - unreachable!() - } - } - } -} - -impl_index!(usize, T); -impl_index!(ops::Range<usize>, [T]); -impl_index!(ops::RangeFrom<usize>, [T]); -impl_index!(ops::RangeTo<usize>, [T]); -impl_index!(ops::RangeFull, [T]); - -impl<T> VecLike<T> for ForgetfulSink<T> { - #[inline] - fn len(&self) -> usize { - unreachable!() - } - - #[inline] - fn push(&mut self, _value: T) { - self.empty = false; - } -} |