cargo upd + fix Decode

This commit is contained in:
2026-09-11 14:05:03 +03:00
parent 1b88db07be
commit 258bdac319
4 changed files with 603 additions and 668 deletions
Generated
+572 -611
View File
File diff suppressed because it is too large Load Diff
+15 -23
View File
@@ -213,7 +213,7 @@ where
pub struct Reader<T>
where
T: bincode::Decode,
T: bincode::Decode<()>,
{
mmap: AsyncMmapFile,
count: usize,
@@ -223,7 +223,7 @@ where
impl<T> Reader<T>
where
T: bincode::Decode,
T: bincode::Decode<()>,
{
pub async fn new<P: AsRef<Path>>(path: P) -> Result<Self, String> {
let mmap = AsyncOptions::new()
@@ -311,7 +311,7 @@ where
pub struct ReaderStream<'a, T>
where
T: bincode::Decode,
T: bincode::Decode<()>,
{
reader: &'a Reader<T>,
index: Option<usize>,
@@ -319,7 +319,7 @@ where
impl<'a, T> ReaderStream<'a, T>
where
T: bincode::Decode,
T: bincode::Decode<()>,
{
fn new(reader: &'a Reader<T>) -> Self {
ReaderStream {
@@ -331,7 +331,7 @@ where
impl<'a, T> Stream for ReaderStream<'a, T>
where
T: bincode::Decode,
T: bincode::Decode<()>,
{
type Item = T;
@@ -364,18 +364,14 @@ where
}
let index = self.index.unwrap();
let rem = if len > index + 1 {
len - (index + 1)
} else {
0
};
let rem = len.saturating_sub(index + 1);
(rem, Some(rem))
}
}
pub struct BufReader<T>
where
T: bincode::Decode,
T: bincode::Decode<()>,
{
inner: Reader<T>,
buf: Vec<u8>,
@@ -383,7 +379,7 @@ where
impl<T> BufReader<T>
where
T: bincode::Decode,
T: bincode::Decode<()>,
{
pub async fn new<P: AsRef<Path>>(path: P, buf_size: usize) -> Result<Self, String> {
match Reader::<T>::new(path).await {
@@ -410,7 +406,7 @@ where
impl<T> From<Reader<T>> for BufReader<T>
where
T: bincode::Decode,
T: bincode::Decode<()>,
{
fn from(inner: Reader<T>) -> Self {
Self {
@@ -422,7 +418,7 @@ where
impl<T> From<BufReader<T>> for Reader<T>
where
T: bincode::Decode,
T: bincode::Decode<()>,
{
fn from(value: BufReader<T>) -> Self {
value.into_inner()
@@ -431,7 +427,7 @@ where
impl<T> Deref for BufReader<T>
where
T: bincode::Decode,
T: bincode::Decode<()>,
{
type Target = Reader<T>;
fn deref(&self) -> &Self::Target {
@@ -441,7 +437,7 @@ where
pub struct BufReaderStream<T>
where
T: bincode::Decode,
T: bincode::Decode<()>,
{
reader: BufReader<T>,
index: Option<usize>,
@@ -449,7 +445,7 @@ where
impl<T> BufReaderStream<T>
where
T: bincode::Decode,
T: bincode::Decode<()>,
{
fn new(reader: BufReader<T>) -> Self {
BufReaderStream {
@@ -473,7 +469,7 @@ where
impl<T> Stream for BufReaderStream<T>
where
T: bincode::Decode,
T: bincode::Decode<()>,
{
type Item = T;
@@ -503,11 +499,7 @@ where
}
let index = self.index.unwrap();
let rem = if len > index + 1 {
len - (index + 1)
} else {
0
};
let rem = len.saturating_sub(index + 1);
(rem, Some(rem))
}
}
+15 -29
View File
@@ -150,7 +150,7 @@ where
pub struct Reader<T>
where
T: bincode::Decode,
T: bincode::Decode<()>,
{
mmap: Mmap,
count: usize,
@@ -160,7 +160,7 @@ where
impl<T> Reader<T>
where
T: bincode::Decode,
T: bincode::Decode<()>,
{
pub fn new<P: AsRef<Path>>(path: P, _buf_size: usize) -> Result<Self, String> {
let file = fs::File::open(path).str_err()?;
@@ -227,7 +227,7 @@ where
pub struct ReaderIter<'a, T>
where
T: bincode::Decode,
T: bincode::Decode<()>,
{
reader: &'a Reader<T>,
index: Option<usize>,
@@ -235,7 +235,7 @@ where
impl<'a, T> ReaderIter<'a, T>
where
T: bincode::Decode,
T: bincode::Decode<()>,
{
fn new(reader: &'a Reader<T>) -> Self {
ReaderIter {
@@ -247,7 +247,7 @@ where
impl<'a, T> Iterator for ReaderIter<'a, T>
where
T: bincode::Decode,
T: bincode::Decode<()>,
{
type Item = T;
@@ -269,10 +269,7 @@ where
self.index = Some(n + 1);
let item = self.reader.get(n);
match item {
Ok(item) => Some(item),
Err(_) => None,
}
item.ok()
}
fn size_hint(&self) -> (usize, Option<usize>) {
@@ -282,11 +279,7 @@ where
}
let index = self.index.unwrap();
let rem = if len > index + 1 {
len - (index + 1)
} else {
0
};
let rem = len.saturating_sub(index + 1);
(rem, Some(rem))
}
@@ -300,7 +293,7 @@ where
impl<'a, T> ExactSizeIterator for ReaderIter<'a, T>
where
T: bincode::Decode,
T: bincode::Decode<()>,
{
fn len(&self) -> usize {
self.reader.len()
@@ -309,7 +302,7 @@ where
pub struct ReaderIntoIter<T>
where
T: bincode::Decode,
T: bincode::Decode<()>,
{
reader: Reader<T>,
index: Option<usize>,
@@ -317,7 +310,7 @@ where
impl<T> ReaderIntoIter<T>
where
T: bincode::Decode,
T: bincode::Decode<()>,
{
fn new(reader: Reader<T>) -> Self {
Self {
@@ -329,7 +322,7 @@ where
impl<T> Iterator for ReaderIntoIter<T>
where
T: bincode::Decode,
T: bincode::Decode<()>,
{
type Item = T;
@@ -351,10 +344,7 @@ where
self.index = Some(n + 1);
let item = self.reader.get(n);
match item {
Ok(item) => Some(item),
Err(_) => None,
}
item.ok()
}
fn size_hint(&self) -> (usize, Option<usize>) {
@@ -364,11 +354,7 @@ where
}
let index = self.index.unwrap();
let rem = if len > index + 1 {
len - (index + 1)
} else {
0
};
let rem = len.saturating_sub(index + 1);
(rem, Some(rem))
}
@@ -382,7 +368,7 @@ where
impl<T> ExactSizeIterator for ReaderIntoIter<T>
where
T: bincode::Decode,
T: bincode::Decode<()>,
{
fn len(&self) -> usize {
self.reader.len()
@@ -391,7 +377,7 @@ where
impl<T> IntoIterator for Reader<T>
where
T: bincode::Decode,
T: bincode::Decode<()>,
{
type Item = T;
type IntoIter = ReaderIntoIter<Self::Item>;
+1 -5
View File
@@ -177,11 +177,7 @@ pub mod reader_sync {
fn size_hint(&self) -> (usize, Option<usize>) {
let len = self.zipfile.len();
let index = self.index.unwrap_or(0);
let rem = if len > index + 1 {
len - (index + 1)
} else {
0
};
let rem = len.saturating_sub(index + 1);
(rem, Some(rem))
}