mirror of
https://github.com/0glabs/0g-storage-node.git
synced 2024-11-20 15:05:19 +00:00
Use iterator to return padding data.
This commit is contained in:
parent
1d48cb1ea7
commit
6c10b90d9e
@ -989,16 +989,16 @@ impl LogManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// FIXME(zz): Implement padding.
|
// FIXME(zz): Implement padding.
|
||||||
pub fn padding(len: usize) -> Vec<Vec<u8>> {
|
pub fn padding(len: usize) -> Box<dyn Iterator<Item = Vec<u8>>> {
|
||||||
let remainder = len % PAD_MAX_SIZE;
|
let remainder = len % PAD_MAX_SIZE;
|
||||||
let n = len / PAD_MAX_SIZE;
|
let n = len / PAD_MAX_SIZE;
|
||||||
let mut pad_data = vec![Self::padding_raw(PAD_MAX_SIZE); n];
|
let iter = (0..n).map(|_| Self::padding_raw(PAD_MAX_SIZE));
|
||||||
if remainder == 0 {
|
if remainder == 0 {
|
||||||
pad_data
|
Box::new(iter)
|
||||||
} else {
|
} else {
|
||||||
// insert the remainder to the front, so the rest are processed with alignment.
|
// insert the remainder to the front, so the rest are processed with alignment.
|
||||||
pad_data.insert(0, Self::padding_raw(remainder));
|
let new_iter = iter.chain(vec![Self::padding_raw(remainder)].into_iter());
|
||||||
pad_data
|
Box::new(new_iter)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user