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>
fn transform(
self,
buffer_size: usize,
transform_fn: TransformFn
) -> ReadTransformer<T>
self,
buffer_size: usize,
transform_fn: TransformFn
) -> ReadTransformer<T>
ⓘImportant traits for ReadTransformer<T>
fn transform_by_tuple(self, _: (usize, TransformFn)) -> ReadTransformer<T>
Implementors
impl<T: Read> TransformableRead<T> for T