pub fn observe_read<F: FnMut(ReadEvent)>(s: BytesReader, f: F) -> ReadObserver<F>
Expand description

Create an observer over BytesReader.

observe_read will accept a FnMut(ReadEvent) which handles ReadEvent triggered by ReadObserver

Example

use opendal::io_util::observe_read;
use opendal::io_util::ReadEvent;

let r = Box::new(io::Cursor::new(vec![0; 1024]));
let mut read_size = 0;
let mut s = observe_read(r, |e| match e {
    ReadEvent::Read(n) => read_size += n,
    _ => {}
});
io::copy(s, &mut io::sink()).await?;