[−][src]Crate tokio_file
Asynchronous File I/O module for Tokio
This module provides methods for asynchronous file I/O. On BSD-based operating systems, it uses mio-aio. On Linux, it could use libaio, but that isn't implemented yet.
Examples
use std::borrow::Borrow; use std::fs; use std::io::Read; use tempdir::TempDir; use tokio::runtime::current_thread; let contents = b"abcdef"; let wbuf: Box<Borrow<[u8]>> = Box::new(&contents[..]); let mut rbuf = Vec::new(); let dir = TempDir::new("tokio-file").unwrap(); let path = dir.path().join("foo"); let file = fs::OpenOptions::new() .create(true) .write(true) .open(&path) .map(tokio_file::File::new) .unwrap(); let mut rt = current_thread::Runtime::new().unwrap(); let r = rt.block_on( file.write_at(wbuf, 0).unwrap() ).unwrap(); assert_eq!(r.value.unwrap() as usize, contents.len()); drop(file); let mut file = fs::File::open(&path).unwrap(); assert_eq!(file.read_to_end(&mut rbuf).unwrap(), contents.len()); assert_eq!(&contents[..], &rbuf[..]);
Structs
AioFut | A Future representing an AIO operation. |
AioResult | Holds the result of an individual aio operation |
File | Basically a Tokio file handle. This is the starting point for tokio-file. |
LioFut | A Future representing an LIO operation. |
LioResult | Holds the result of an individual lio operation |
Enums
BufRef | Stores a reference to the buffer used by the |