diff options
Diffstat (limited to 'components/util/vec.rs')
-rw-r--r-- | components/util/vec.rs | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/components/util/vec.rs b/components/util/vec.rs index f612726d129..960e7e8db1a 100644 --- a/components/util/vec.rs +++ b/components/util/vec.rs @@ -3,6 +3,7 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use std::cmp::{PartialOrd, PartialEq, Ordering}; +use std::iter::range_step; #[cfg(test)] use std::fmt::Debug; @@ -64,6 +65,17 @@ impl<T:PartialEq + PartialOrd + Ord> Comparator<T,T> for DefaultComparator { } } + +// 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(); + for i in range_step(0, length, 4) { + let r = data[i + 2]; + data[i + 2] = data[i + 0]; + data[i + 0] = r; + } +} + #[cfg(test)] fn test_find_all_elems<T: PartialEq + PartialOrd + Eq + Ord>(arr: &[T]) { let mut i = 0; |