[][src]Struct self_encryption::SelfEncryptor

pub struct SelfEncryptor<S>(_);

This is the encryption object and all file handling should be done using this object as the low level mechanism to read and write content. This library has no knowledge of file metadata.

Methods

impl<S> SelfEncryptor<S> where
    S: Storage + 'static, 
[src]

pub fn new(
    storage: S,
    data_map: DataMap
) -> Result<SelfEncryptor<S>, SelfEncryptionError<S::Error>>
[src]

This is the only constructor for an encryptor object. Each SelfEncryptor is used for a single file. The parameters are a Storage object and a DataMap. For a file which has not previously been self-encrypted, use DataMap::None.

pub fn write(
    &self,
    data: &[u8],
    position: u64
) -> Box<dyn Future<Item = (), Error = SelfEncryptionError<S::Error>>>
[src]

Write method mirrors a POSIX type write mechanism. It loosely mimics a filesystem interface for easy connection to FUSE-like programs as well as fine grained access to system level libraries for developers. The input data will be written from the specified position (starts from 0).

pub fn read(
    &self,
    position: u64,
    length: u64
) -> Box<dyn Future<Item = Vec<u8>, Error = SelfEncryptionError<S::Error>>>
[src]

The returned content is read from the specified position with specified length. Trying to read beyond the file size will cause the encryptor to return content filled with 0u8s in the gap (file size isn't affected). Any other unwritten gaps will also be filled with '0u8's.

pub fn close(
    self
) -> Box<dyn Future<Item = (DataMap, S), Error = SelfEncryptionError<S::Error>>>
[src]

This function returns a DataMap, which is the info required to recover encrypted content from data storage location. Content temporarily held in the encryptor will only get flushed into storage when this function gets called.

pub fn truncate(
    &self,
    new_size: u64
) -> Box<dyn Future<Item = (), Error = SelfEncryptionError<S::Error>>>
[src]

Truncate the self_encryptor to the specified size (if extended, filled with 0u8s).

pub fn len(&self) -> u64[src]

Current file size as is known by encryptor.

pub fn is_empty(&self) -> bool[src]

Returns true if file size as is known by encryptor == 0.

pub fn into_storage(self) -> S[src]

Consume this encryptor and return its storage.

Trait Implementations

impl<S: Storage> Debug for SelfEncryptor<S>[src]

Auto Trait Implementations

impl<S> !Send for SelfEncryptor<S>

impl<S> !Sync for SelfEncryptor<S>

impl<S> Unpin for SelfEncryptor<S>

impl<S> !UnwindSafe for SelfEncryptor<S>

impl<S> !RefUnwindSafe for SelfEncryptor<S>

Blanket Implementations

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = !

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Same<T> for T

type Output = T

Should always be Self