std: Use do blocks instead of for with .iter_bytes()

This commit is contained in:
blake2-ppc 2013-07-31 21:07:44 +02:00
parent 18d124b9b5
commit 6d7a0c8cbc
2 changed files with 49 additions and 33 deletions

View file

@ -85,9 +85,10 @@ impl<A:IterBytes> Hash for A {
#[inline]
fn hash_keyed(&self, k0: u64, k1: u64) -> u64 {
let mut s = State::new(k0, k1);
for self.iter_bytes(true) |bytes| {
do self.iter_bytes(true) |bytes| {
s.input(bytes);
}
true
};
s.result_u64()
}
}
@ -95,12 +96,14 @@ impl<A:IterBytes> Hash for A {
fn hash_keyed_2<A: IterBytes,
B: IterBytes>(a: &A, b: &B, k0: u64, k1: u64) -> u64 {
let mut s = State::new(k0, k1);
for a.iter_bytes(true) |bytes| {
do a.iter_bytes(true) |bytes| {
s.input(bytes);
}
for b.iter_bytes(true) |bytes| {
true
};
do b.iter_bytes(true) |bytes| {
s.input(bytes);
}
true
};
s.result_u64()
}
@ -108,15 +111,18 @@ fn hash_keyed_3<A: IterBytes,
B: IterBytes,
C: IterBytes>(a: &A, b: &B, c: &C, k0: u64, k1: u64) -> u64 {
let mut s = State::new(k0, k1);
for a.iter_bytes(true) |bytes| {
do a.iter_bytes(true) |bytes| {
s.input(bytes);
}
for b.iter_bytes(true) |bytes| {
true
};
do b.iter_bytes(true) |bytes| {
s.input(bytes);
}
for c.iter_bytes(true) |bytes| {
true
};
do c.iter_bytes(true) |bytes| {
s.input(bytes);
}
true
};
s.result_u64()
}
@ -132,18 +138,22 @@ fn hash_keyed_4<A: IterBytes,
k1: u64)
-> u64 {
let mut s = State::new(k0, k1);
for a.iter_bytes(true) |bytes| {
do a.iter_bytes(true) |bytes| {
s.input(bytes);
}
for b.iter_bytes(true) |bytes| {
true
};
do b.iter_bytes(true) |bytes| {
s.input(bytes);
}
for c.iter_bytes(true) |bytes| {
true
};
do c.iter_bytes(true) |bytes| {
s.input(bytes);
}
for d.iter_bytes(true) |bytes| {
true
};
do d.iter_bytes(true) |bytes| {
s.input(bytes);
}
true
};
s.result_u64()
}
@ -161,21 +171,26 @@ fn hash_keyed_5<A: IterBytes,
k1: u64)
-> u64 {
let mut s = State::new(k0, k1);
for a.iter_bytes(true) |bytes| {
do a.iter_bytes(true) |bytes| {
s.input(bytes);
}
for b.iter_bytes(true) |bytes| {
true
};
do b.iter_bytes(true) |bytes| {
s.input(bytes);
}
for c.iter_bytes(true) |bytes| {
true
};
do c.iter_bytes(true) |bytes| {
s.input(bytes);
}
for d.iter_bytes(true) |bytes| {
true
};
do d.iter_bytes(true) |bytes| {
s.input(bytes);
}
for e.iter_bytes(true) |bytes| {
true
};
do e.iter_bytes(true) |bytes| {
s.input(bytes);
}
true
};
s.result_u64()
}

View file

@ -353,9 +353,10 @@ pub trait ToBytes {
impl<A:IterBytes> ToBytes for A {
fn to_bytes(&self, lsb0: bool) -> ~[u8] {
do io::with_bytes_writer |wr| {
for self.iter_bytes(lsb0) |bytes| {
wr.write(bytes)
}
do self.iter_bytes(lsb0) |bytes| {
wr.write(bytes);
true
};
}
}
}