Trait read_transform::TransformableRead[][src]

pub trait TransformableRead<T: Read>: Read {
    fn transform(
        self,
        buffer_size: usize,
        transform_fn: TransformFn
    ) -> ReadTransformer<T>;
fn transform_by_tuple(self, _: (usize, TransformFn)) -> ReadTransformer<T>; }

Convenience trait which implemented by all Read objects. Allows chaining of Read objects.

Example

This example is not tested
let mut data = Cursor::new(vec![1, 2, 3, 4, 5, 6, 7, 8, 9, 10]).transform(
    5,
    Box::new(|buffer: &mut [u8], _position, _last_attempt| -> Option<(Vec<u8>, usize)> {
        let buf = buffer
            .iter()
            .filter(|x| {
                return *x % 2 == 0;
            })
            .cloned()
            .collect::<Vec<_>>();
        return Some((buf, buffer.len()));
    }),
);
let mut out = vec![0; 5];
data.read_exact(&mut out).unwrap();
assert_eq!(out, [2, 4, 6, 8, 10]);

Required Methods

Important traits for ReadTransformer<T>

Important traits for ReadTransformer<T>

Implementors