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