Add buffered reader again
This commit is contained in:
parent
84ea4bea89
commit
b01fa618b4
2 changed files with 6 additions and 6 deletions
8
src/cache/fs.rs
vendored
8
src/cache/fs.rs
vendored
|
@ -12,7 +12,7 @@ use std::path::{Path, PathBuf};
|
||||||
use std::pin::Pin;
|
use std::pin::Pin;
|
||||||
use std::task::{Context, Poll};
|
use std::task::{Context, Poll};
|
||||||
use tokio::fs::{create_dir_all, remove_file, File};
|
use tokio::fs::{create_dir_all, remove_file, File};
|
||||||
use tokio::io::{AsyncRead, AsyncSeekExt, AsyncWriteExt, ReadBuf};
|
use tokio::io::{AsyncRead, AsyncSeekExt, AsyncWriteExt, BufReader, ReadBuf};
|
||||||
use tokio::sync::mpsc::UnboundedSender;
|
use tokio::sync::mpsc::UnboundedSender;
|
||||||
use tokio::sync::watch::{channel, Receiver};
|
use tokio::sync::watch::{channel, Receiver};
|
||||||
use tokio::sync::RwLock;
|
use tokio::sync::RwLock;
|
||||||
|
@ -61,7 +61,7 @@ pub async fn read_file(
|
||||||
WatchStream::new(status),
|
WatchStream::new(status),
|
||||||
))
|
))
|
||||||
} else {
|
} else {
|
||||||
CacheStream::Completed(FramedRead::new(file, BytesCodec::new()))
|
CacheStream::Completed(FramedRead::new(BufReader::new(file), BytesCodec::new()))
|
||||||
};
|
};
|
||||||
|
|
||||||
Some(Ok((stream, metadata)))
|
Some(Ok((stream, metadata)))
|
||||||
|
@ -156,7 +156,7 @@ pub async fn write_file(
|
||||||
}
|
}
|
||||||
|
|
||||||
pub struct ConcurrentFsStream {
|
pub struct ConcurrentFsStream {
|
||||||
file: Pin<Box<File>>,
|
file: Pin<Box<BufReader<File>>>,
|
||||||
receiver: Pin<Box<WatchStream<WritingStatus>>>,
|
receiver: Pin<Box<WatchStream<WritingStatus>>>,
|
||||||
bytes_read: u64,
|
bytes_read: u64,
|
||||||
bytes_total: Option<NonZeroU64>,
|
bytes_total: Option<NonZeroU64>,
|
||||||
|
@ -175,7 +175,7 @@ impl ConcurrentFsStream {
|
||||||
|
|
||||||
fn from_file(file: File, receiver: WatchStream<WritingStatus>) -> Self {
|
fn from_file(file: File, receiver: WatchStream<WritingStatus>) -> Self {
|
||||||
Self {
|
Self {
|
||||||
file: Box::pin(file),
|
file: Box::pin(BufReader::new(file)),
|
||||||
receiver: Box::pin(receiver),
|
receiver: Box::pin(receiver),
|
||||||
bytes_read: 0,
|
bytes_read: 0,
|
||||||
bytes_total: None,
|
bytes_total: None,
|
||||||
|
|
4
src/cache/mod.rs
vendored
4
src/cache/mod.rs
vendored
|
@ -12,7 +12,7 @@ use fs::ConcurrentFsStream;
|
||||||
use futures::{Stream, StreamExt};
|
use futures::{Stream, StreamExt};
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
use thiserror::Error;
|
use thiserror::Error;
|
||||||
use tokio::fs::File;
|
use tokio::{fs::File, io::BufReader};
|
||||||
use tokio_util::codec::{BytesCodec, FramedRead};
|
use tokio_util::codec::{BytesCodec, FramedRead};
|
||||||
|
|
||||||
pub use fs::UpstreamError;
|
pub use fs::UpstreamError;
|
||||||
|
@ -170,7 +170,7 @@ pub trait Cache: Send + Sync {
|
||||||
pub enum CacheStream {
|
pub enum CacheStream {
|
||||||
Concurrent(ConcurrentFsStream),
|
Concurrent(ConcurrentFsStream),
|
||||||
Memory(MemStream),
|
Memory(MemStream),
|
||||||
Completed(FramedRead<File, BytesCodec>),
|
Completed(FramedRead<BufReader<File>, BytesCodec>),
|
||||||
}
|
}
|
||||||
|
|
||||||
impl From<CachedImage> for CacheStream {
|
impl From<CachedImage> for CacheStream {
|
||||||
|
|
Loading…
Reference in a new issue