/// The SHA-1 interface
trait Sha1 {
/// Provide message input as bytes
- fn input(&mut self, &const [u8]);
+ fn input(&mut self, &[u8]);
/// Provide message input as string
fn input_str(&mut self, &str);
/**
computed: bool,
work_buf: @mut ~[u32]};
- fn add_input(st: &mut Sha1State, msg: &const [u8]) {
+ fn add_input(st: &mut Sha1State, msg: &[u8]) {
assert!((!st.computed));
- for vec::each_const(msg) |element| {
+ for msg.iter().advance |element| {
st.msg_block[st.msg_block_idx] = *element;
st.msg_block_idx += 1u;
st.len_low += 8u32;
self.h[4] = 0xC3D2E1F0u32;
self.computed = false;
}
- fn input(&mut self, msg: &const [u8]) { add_input(self, msg); }
+ fn input(&mut self, msg: &[u8]) { add_input(self, msg); }
fn input_str(&mut self, msg: &str) {
add_input(self, msg.as_bytes());
}
return !broke;
}
-/// Like `each()`, but for the case where you have a vector that *may or may
-/// not* have mutable contents.
-#[inline]
-pub fn each_const<T>(v: &const [T], f: &fn(elem: &const T) -> bool) -> bool {
- let mut i = 0;
- let n = v.len();
- while i < n {
- if !f(&const v[i]) {
- return false;
- }
- i += 1;
- }
- return true;
-}
-
/**
* Iterates over a vector's elements and indices
*