pub struct Blob<'conn> { /* private fields */ }blob only.Expand description
Handle to an open BLOB. See
rusqlite::blob documentation for in-depth discussion.
Implementations§
Source§impl<'conn> Blob<'conn>
 
impl<'conn> Blob<'conn>
Sourcepub fn write_at(&mut self, buf: &[u8], write_start: usize) -> Result<()>
 
pub fn write_at(&mut self, buf: &[u8], write_start: usize) -> Result<()>
Write buf to self starting at write_start, returning an error if
write_start + buf.len() is past the end of the blob.
If an error is returned, no data is written.
Note: the blob cannot be resized using this function – that must be
done using SQL (for example, an UPDATE statement).
Note: This is part of the positional I/O API, and thus takes an absolute
position write to, instead of using the internal position that can be
manipulated by the std::io traits.
Unlike the similarly named FileExt::write_at function
(from std::os::unix), it’s always an error to perform a “short write”.
Sourcepub fn write_all_at(&mut self, buf: &[u8], write_start: usize) -> Result<()>
 
pub fn write_all_at(&mut self, buf: &[u8], write_start: usize) -> Result<()>
An alias for write_at provided for compatibility with the conceptually
equivalent std::os::unix::FileExt::write_all_at
function from libstd:
Sourcepub fn read_at(&self, buf: &mut [u8], read_start: usize) -> Result<usize>
 
pub fn read_at(&self, buf: &mut [u8], read_start: usize) -> Result<usize>
Read as much as possible from offset to offset + buf.len() out of
self, writing into buf. On success, returns the number of bytes
written.
If there’s insufficient data in self, then the returned value will be
less than buf.len().
See also Blob::raw_read_at, which can take an uninitialized buffer,
or Blob::read_at_exact which returns an error if the entire buf is
not read.
Note: This is part of the positional I/O API, and thus takes an absolute
position to read from, instead of using the internal position that can
be manipulated by the std::io traits. Consequently, it does not change
that value either.
Sourcepub fn raw_read_at<'a>(
    &self,
    buf: &'a mut [MaybeUninit<u8>],
    read_start: usize,
) -> Result<&'a mut [u8]>
 
pub fn raw_read_at<'a>( &self, buf: &'a mut [MaybeUninit<u8>], read_start: usize, ) -> Result<&'a mut [u8]>
Read as much as possible from offset to offset + buf.len() out of
self, writing into buf. On success, returns the portion of buf
which was initialized by this call.
If there’s insufficient data in self, then the returned value will be
shorter than buf.
See also Blob::read_at, which takes a &mut [u8] buffer instead of
a slice of MaybeUninit<u8>.
Note: This is part of the positional I/O API, and thus takes an absolute
position to read from, instead of using the internal position that can
be manipulated by the std::io traits. Consequently, it does not change
that value either.
Sourcepub fn read_at_exact(&self, buf: &mut [u8], read_start: usize) -> Result<()>
 
pub fn read_at_exact(&self, buf: &mut [u8], read_start: usize) -> Result<()>
Equivalent to Blob::read_at, but returns a BlobSizeError if buf
is not fully initialized.
Sourcepub fn raw_read_at_exact<'a>(
    &self,
    buf: &'a mut [MaybeUninit<u8>],
    read_start: usize,
) -> Result<&'a mut [u8]>
 
pub fn raw_read_at_exact<'a>( &self, buf: &'a mut [MaybeUninit<u8>], read_start: usize, ) -> Result<&'a mut [u8]>
Equivalent to Blob::raw_read_at, but returns a BlobSizeError if
buf is not fully initialized.
Trait Implementations§
Source§impl Read for Blob<'_>
 
impl Read for Blob<'_>
Source§fn read(&mut self, buf: &mut [u8]) -> Result<usize>
 
fn read(&mut self, buf: &mut [u8]) -> Result<usize>
Read data from a BLOB incrementally. Will return Ok(0) if the end of the blob has been reached.
§Failure
Will return Err if the underlying SQLite read call fails.
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>
read, except that it reads into a slice of buffers. Read moreSource§fn is_read_vectored(&self) -> bool
 
fn is_read_vectored(&self) -> bool
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>
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>
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>
buf. Read moreSource§fn read_buf(&mut self, buf: BorrowedCursor<'_>) -> Result<(), Error>
 
fn read_buf(&mut self, buf: BorrowedCursor<'_>) -> Result<(), Error>
read_buf)Source§fn read_buf_exact(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>
 
fn read_buf_exact(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>
read_buf)cursor. Read more1.0.0 · Source§fn by_ref(&mut self) -> &mut Selfwhere
    Self: Sized,
 
fn by_ref(&mut self) -> &mut Selfwhere
    Self: Sized,
Read. Read moreSource§impl Seek for Blob<'_>
 
impl Seek for Blob<'_>
1.55.0 · Source§fn rewind(&mut self) -> Result<(), Error>
 
fn rewind(&mut self) -> Result<(), Error>
Source§fn stream_len(&mut self) -> Result<u64, Error>
 
fn stream_len(&mut self) -> Result<u64, Error>
seek_stream_len)Source§impl Write for Blob<'_>
 
impl Write for Blob<'_>
Source§fn write(&mut self, buf: &[u8]) -> Result<usize>
 
fn write(&mut self, buf: &[u8]) -> Result<usize>
Write data into a BLOB incrementally. Will return Ok(0) if the end of
the blob has been reached; consider using Write::write_all(buf)
if you want to get an error if the entirety of the buffer cannot be
written.
This function may only modify the contents of the BLOB; it is not possible to increase the size of a BLOB using this API.
§Failure
Will return Err if the underlying SQLite write call fails.
Source§fn flush(&mut self) -> Result<()>
 
fn flush(&mut self) -> Result<()>
Source§fn is_write_vectored(&self) -> bool
 
fn is_write_vectored(&self) -> bool
can_vector)1.0.0 · Source§fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>
 
fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>
Source§fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>
 
fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>
write_all_vectored)