async-spooled-tempfile

Crates.ioasync-spooled-tempfile
lib.rsasync-spooled-tempfile
version0.1.0
sourcesrc
created_at2024-12-11 21:43:02.560599
updated_at2024-12-11 21:43:02.560599
descriptionAsynchronous spooled temporary file
homepage
repositoryhttps://github.com/AverageADF/async-spooled-tempfile
max_upload_size
id1480556
size31,903
(AverageADF)

documentation

https://docs.rs/async-spooled-tempfile

README

async-spooled-tempfile


Crate exposing an asynchronous version of the tempfile::SpooledTempFile structure provided by the tempfile crate.

Dependency

Add the following line to your Cargo.toml file:

[dependencies]
async-spooled-tempfile = "0.1.0"

Example

use async_spooled_tempfile::{SpooledData, SpooledTempFile};
use tokio::io::AsyncWriteExt;

#[tokio::main]
async fn main() {
    let mut sf = SpooledTempFile::new(10);

    sf.write_all(b"12345").await.unwrap();
    assert!(!sf.is_rolled());

    sf.write_all(b"6789abc").await.unwrap();
    assert!(sf.is_rolled());

    assert!(std::matches!(
        sf.into_inner().await,
        Ok(SpooledData::OnDisk(_file))
    ));
}
Commit count: 2

cargo fmt