56 lines
1.2 KiB
Rust
56 lines
1.2 KiB
Rust
use bytes::BytesMut;
|
|
use std::fmt;
|
|
use std::time::Duration;
|
|
|
|
pub struct FileChunkRead {
|
|
buf: BytesMut,
|
|
duration: Duration,
|
|
}
|
|
|
|
impl FileChunkRead {
|
|
pub fn with_buf(buf: BytesMut) -> Self {
|
|
Self {
|
|
buf,
|
|
duration: Duration::from_millis(0),
|
|
}
|
|
}
|
|
|
|
pub fn with_buf_dur(buf: BytesMut, duration: Duration) -> Self {
|
|
Self { buf, duration }
|
|
}
|
|
|
|
pub fn into_buf(self) -> BytesMut {
|
|
self.buf
|
|
}
|
|
|
|
pub fn buf(&self) -> &BytesMut {
|
|
&self.buf
|
|
}
|
|
|
|
pub fn buf_mut(&mut self) -> &mut BytesMut {
|
|
&mut self.buf
|
|
}
|
|
|
|
pub fn buf_take(&mut self) -> BytesMut {
|
|
core::mem::replace(&mut self.buf, BytesMut::new())
|
|
}
|
|
|
|
pub fn duration(&self) -> &Duration {
|
|
&self.duration
|
|
}
|
|
|
|
pub fn duration_mut(&mut self) -> &mut Duration {
|
|
&mut self.duration
|
|
}
|
|
}
|
|
|
|
impl fmt::Debug for FileChunkRead {
|
|
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
|
f.debug_struct("FileChunkRead")
|
|
.field("buf.len", &self.buf.len())
|
|
.field("buf.cap", &self.buf.capacity())
|
|
.field("duration", &self.duration)
|
|
.finish()
|
|
}
|
|
}
|