Trait positioned_io::WriteAt
[−]
[src]
pub trait WriteAt {
fn write_at(&mut self, pos: u64, buf: &[u8]) -> Result<usize>;
fn flush(&mut self) -> Result<()>;
fn write_all_at(&mut self, pos: u64, buf: &[u8]) -> Result<()> { ... }
}Trait for writing at an offset.
Implementations should be able to write bytes at an offset, without changing any sort of write-position. Self should not change at all.
Examples
use positioned_io::WriteAt; use byteorder::{ByteOrder, LittleEndian}; // Put the integer in a buffer. let mut buf = vec![0; 4]; LittleEndian::write_u32(&mut buf, 1234); // Write it to the file. let mut file = try!(OpenOptions::new().write(true).open("foo.data")); try!(file.write_all_at(1 << 20, &buf));
Required Methods
fn write_at(&mut self, pos: u64, buf: &[u8]) -> Result<usize>
Write a buffer at an offset, returning the number of bytes written.
This function may write fewer bytes than the size of buf, for example if it is
interrupted.
See Write::write().
fn flush(&mut self) -> Result<()>
Flush this writer, ensuring that any buffered data is written.
This should rarely do anything, since buffering is not very useful for positioned writes.
Provided Methods
fn write_all_at(&mut self, pos: u64, buf: &[u8]) -> Result<()>
Write a complete buffer at an offset.
If only a lesser number of bytes can be written, will yield an error.