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
impl AtomicFile
sourcepub fn len(&self) -> usize
pub fn len(&self) -> usize
len will return the size of the file, not including the versioned header.
sourcepub async fn write_file(&mut self, buf: &[u8]) -> Result<(), Error>
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.