FileBlockEncryptReadStream

Struct FileBlockEncryptReadStream 

Source
pub struct FileBlockEncryptReadStream { /* private fields */ }
Expand description

A stream to read an encrypted large file using blocks for fast skip

Implementations§

Source§

impl FileBlockEncryptReadStream

Source

pub fn new<P>( file_path: P, key: Vec<u8>, ) -> Result<FileBlockEncryptReadStream, BlockFileOpenError>
where P: AsRef<Path>,

Creates a new instance of FileBlockEncryptReadStream Opens the file and reads the header

Parameters:

  • file_path - Path to the file to open
  • key - The encryption key

Returns an instance of FileBlockEncryptReadStream, or an error

Source

pub fn get_file_size(&self) -> u64

Gets the size of the file

Source

pub fn get_block_size(&self) -> u64

Gets the size of the blocks in the file

Source

pub fn get_block_count(&self) -> u64

Gets the total number of blocks in the file

Source

pub fn get_cursor(&self) -> u64

Gets the current cursor position

Source

pub fn seek(&mut self, pos: SeekFrom) -> Result<u64, BlockFileReadError>

Seeks the file, changing the position of the cursor

Parameters:

  • pos - The position in the file to seek to

Returns the new position of the cursor, or an error

Source

pub fn read(&mut self, buf: &mut [u8]) -> Result<usize, BlockFileReadError>

Reads data into a buffer

Parameters:

  • buf - The buffer for the data to be placed into

Returns the number of bytes read, or an error When the files does not contain more bytes, the error will be BlockFileReadError::EndOfFile

Source

pub fn close(self)

Closes the file and drops the instance of the stream

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V