Struct atomic_file::AtomicFile

source ·
pub struct AtomicFile { /* private fields */ }
Expand description

AtompicFile defines the main type for the crate, and implements an API for safely handling atomic files. The API is based on the async_std::File interface, but with some adjustments that are designed to make it both safer and more ergonomic. For example, len() is a direct call rather than a property of a metadata() call.

Implementations§

source§

impl AtomicFile

source

pub fn len(&self) -> usize

len will return the size of the file, not including the versioned header.

source

pub fn contents(&self) -> Vec<u8>

contents will return a copy of the contents of the file.

source

pub async fn write_file(&mut self, buf: &[u8]) -> Result<(), Error>

write_file will perform a safe, ACID operation to write the provided data to the file. This will incur a performance cost of 2 fsyncs and of writing the full contents of the file to disk twice. For SSDs, the cost of two fsyncs is typically under 25ms and often under 3ms. For HDDs, the cost of two fsyncs is typically over 200ms and often over 800ms.

Trait Implementations§

source§

impl Debug for AtomicFile

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

const: unstable · source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

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

const: unstable · 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<T> for T

§

type Output = T

Should always be Self
source§

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

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

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

Performs the conversion.
source§

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

§

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

The type returned in the event of a conversion error.
const: unstable · source§

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

Performs the conversion.