remove Addresses::next
This commit is contained in:
parent
15b77bc848
commit
5d4116d588
@ -9,20 +9,6 @@ pub(super) struct Addresses {
|
||||
}
|
||||
|
||||
impl Addresses {
|
||||
/// Read the next [Address].
|
||||
pub fn next<'a>(
|
||||
&mut self,
|
||||
deserializer: &'a mut dyn Deserializer,
|
||||
) -> Result<Address, &'a [u8]> {
|
||||
let point = deserializer.read_n_const::<HASH_SIZE>()?;
|
||||
let address = Address {
|
||||
point,
|
||||
index: self.current,
|
||||
};
|
||||
self.current += 1;
|
||||
Ok(address)
|
||||
}
|
||||
|
||||
/// Start reading the [Address]es.
|
||||
fn start() -> Self {
|
||||
Addresses { current: 0 }
|
||||
@ -85,7 +71,9 @@ mod tests {
|
||||
let mut addresses = Addresses::start();
|
||||
let point = b"A".repeat(HASH_SIZE);
|
||||
let mut deserializer = SliceDeserializer::from(point.as_slice());
|
||||
let address = addresses.next(&mut deserializer).unwrap();
|
||||
let (address, _) = deserializer
|
||||
.inext_address(&mut addresses, |_| unreachable!())
|
||||
.unwrap();
|
||||
assert_eq!(address.point, point.as_slice());
|
||||
assert_eq!(address.index, 0);
|
||||
}
|
||||
@ -103,17 +91,25 @@ mod tests {
|
||||
source.extend(&point2);
|
||||
source.extend(tail);
|
||||
let mut deserializer = SliceDeserializer::from(source.as_slice());
|
||||
let address = addresses.next(&mut deserializer).unwrap();
|
||||
let (address, _) = deserializer
|
||||
.inext_address(&mut addresses, |_| unreachable!())
|
||||
.unwrap();
|
||||
assert_eq!(address.point, point0.as_slice());
|
||||
assert_eq!(address.index, 0);
|
||||
let address = addresses.next(&mut deserializer).unwrap();
|
||||
let (address, _) = deserializer
|
||||
.inext_address(&mut addresses, |_| unreachable!())
|
||||
.unwrap();
|
||||
assert_eq!(address.point, point1.as_slice());
|
||||
assert_eq!(address.index, 1);
|
||||
let address = addresses.next(&mut deserializer).unwrap();
|
||||
let (address, _) = deserializer
|
||||
.inext_address(&mut addresses, |_| unreachable!())
|
||||
.unwrap();
|
||||
assert_eq!(address.point, point2.as_slice());
|
||||
assert_eq!(address.index, 2);
|
||||
if tail.len() < HASH_SIZE {
|
||||
let err = addresses.next(&mut deserializer).unwrap_err();
|
||||
let err = deserializer
|
||||
.inext_address(&mut addresses, |e| e.to_vec())
|
||||
.unwrap_err();
|
||||
assert_eq!(err, tail);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user