Struct cacache::SyncReader
source · pub struct SyncReader { /* private fields */ }
Expand description
File handle for reading data synchronously.
Make sure to call get.check()
when done reading
to verify that the extracted data passes integrity
verification.
Implementations§
source§impl SyncReader
impl SyncReader
sourcepub fn check(self) -> Result<Algorithm>
pub fn check(self) -> Result<Algorithm>
Checks that data read from disk passes integrity checks. Returns the algorithm that was used verified the data. Should be called only after all data has been read from disk.
§Example
use std::io::Read;
fn main() -> cacache::Result<()> {
let mut fd = cacache::SyncReader::open("./my-cache", "my-key")?;
let mut str = String::new();
fd.read_to_string(&mut str).expect("Failed to read to string");
// Remember to check that the data you got was correct!
fd.check()?;
Ok(())
}
sourcepub fn open<P, K>(cache: P, key: K) -> Result<SyncReader>
pub fn open<P, K>(cache: P, key: K) -> Result<SyncReader>
Opens a new synchronous file handle into the cache, looking it up in the
index using key
.
§Example
use std::io::Read;
fn main() -> cacache::Result<()> {
let mut fd = cacache::SyncReader::open("./my-cache", "my-key")?;
let mut str = String::new();
fd.read_to_string(&mut str).expect("Failed to parse string");
// Remember to check that the data you got was correct!
fd.check()?;
Ok(())
}
sourcepub fn open_hash<P>(cache: P, sri: Integrity) -> Result<SyncReader>
pub fn open_hash<P>(cache: P, sri: Integrity) -> Result<SyncReader>
Opens a new synchronous file handle into the cache, based on its integrity address.
§Example
use std::io::Read;
fn main() -> cacache::Result<()> {
let sri = cacache::write_sync("./my-cache", "key", b"hello world")?;
let mut fd = cacache::SyncReader::open_hash("./my-cache", sri)?;
let mut str = String::new();
fd.read_to_string(&mut str).expect("Failed to read to string");
// Remember to check that the data you got was correct!
fd.check()?;
Ok(())
}
Trait Implementations§
source§impl Read for SyncReader
impl Read for SyncReader
source§fn read(&mut self, buf: &mut [u8]) -> Result<usize>
fn read(&mut self, buf: &mut [u8]) -> Result<usize>
Pull some bytes from this source into the specified buffer, returning
how many bytes were read. Read more
1.36.0 · source§fn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize, Error>
fn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize, Error>
Like
read
, except that it reads into a slice of buffers. Read moresource§fn is_read_vectored(&self) -> bool
fn is_read_vectored(&self) -> bool
🔬This is a nightly-only experimental API. (
can_vector
)1.0.0 · source§fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize, Error>
fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize, Error>
Read all bytes until EOF in this source, placing them into
buf
. Read more1.0.0 · source§fn read_to_string(&mut self, buf: &mut String) -> Result<usize, Error>
fn read_to_string(&mut self, buf: &mut String) -> Result<usize, Error>
Read all bytes until EOF in this source, appending them to
buf
. Read more1.6.0 · source§fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>
fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>
Read the exact number of bytes required to fill
buf
. Read moresource§fn read_buf(&mut self, buf: BorrowedCursor<'_>) -> Result<(), Error>
fn read_buf(&mut self, buf: BorrowedCursor<'_>) -> Result<(), Error>
🔬This is a nightly-only experimental API. (
read_buf
)Pull some bytes from this source into the specified buffer. Read more
source§fn read_buf_exact(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>
fn read_buf_exact(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>
🔬This is a nightly-only experimental API. (
read_buf
)Read the exact number of bytes required to fill
cursor
. Read more1.0.0 · source§fn by_ref(&mut self) -> &mut Selfwhere
Self: Sized,
fn by_ref(&mut self) -> &mut Selfwhere
Self: Sized,
Creates a “by reference” adaptor for this instance of
Read
. Read moreAuto Trait Implementations§
impl RefUnwindSafe for SyncReader
impl Send for SyncReader
impl Sync for SyncReader
impl Unpin for SyncReader
impl UnwindSafe for SyncReader
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more