pub struct CustomChunker<R: AsyncRead, A> { /* private fields */ }
Available on crate feature
async
only.Expand description
The async analog to the base crate’s
CustomChunker
.
It takes an Adapter
and yields chunks based on the Adapter
’s
transformation.
use regex_chunker::{
stream::ByteChunker,
StringAdapter,
};
use tokio_stream::StreamExt;
use std::io::Cursor;
let text = b"One, two, three four. Can I have a little more?";
let c = Cursor::new(text);
let chunks: Vec<_> = ByteChunker::new(c, "[ .,?]+")?
.with_adapter(StringAdapter::default())
.map(|res| res.unwrap())
.collect().await;
assert_eq!(
&chunks,
&[
"One", "two", "three", "four",
"Can", "I", "have", "a", "little", "more"
].clone()
);
Implementations§
Source§impl<R: AsyncRead, A> CustomChunker<R, A>
impl<R: AsyncRead, A> CustomChunker<R, A>
Sourcepub fn into_innards(self) -> (ByteChunker<R>, A)
pub fn into_innards(self) -> (ByteChunker<R>, A)
Consumes the CustomChunker
and returns the underlying
ByteChunker
and Adapter
.
Sourcepub fn get_adapter(&self) -> &A
pub fn get_adapter(&self) -> &A
Get a reference to the underlying Adapter
.
Sourcepub fn get_adapter_mut(&mut self) -> &mut A
pub fn get_adapter_mut(&mut self) -> &mut A
Get a mutable reference to the underlying Adapter
.
Trait Implementations§
Source§impl<R, A> Stream for CustomChunker<R, A>
impl<R, A> Stream for CustomChunker<R, A>
impl<R: AsyncRead, A> Unpin for CustomChunker<R, A>
Auto Trait Implementations§
impl<R, A> Freeze for CustomChunker<R, A>
impl<R, A> RefUnwindSafe for CustomChunker<R, A>where
A: RefUnwindSafe,
R: RefUnwindSafe,
impl<R, A> Send for CustomChunker<R, A>
impl<R, A> Sync for CustomChunker<R, A>
impl<R, A> UnwindSafe for CustomChunker<R, A>where
A: UnwindSafe,
R: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<St> StreamExt for St
impl<St> StreamExt for St
Source§fn next(&mut self) -> Next<'_, Self>where
Self: Unpin,
fn next(&mut self) -> Next<'_, Self>where
Self: Unpin,
Consumes and returns the next value in the stream or
None
if the
stream is finished. Read moreSource§fn try_next<T, E>(&mut self) -> TryNext<'_, Self>
fn try_next<T, E>(&mut self) -> TryNext<'_, Self>
Consumes and returns the next item in the stream. If an error is
encountered before the next item, the error is returned instead. Read more
Source§fn map<T, F>(self, f: F) -> Map<Self, F>
fn map<T, F>(self, f: F) -> Map<Self, F>
Maps this stream’s items to a different type, returning a new stream of
the resulting type. Read more
Source§fn map_while<T, F>(self, f: F) -> MapWhile<Self, F>
fn map_while<T, F>(self, f: F) -> MapWhile<Self, F>
Map this stream’s items to a different type for as long as determined by
the provided closure. A stream of the target type will be returned,
which will yield elements until the closure returns
None
. Read moreSource§fn then<F, Fut>(self, f: F) -> Then<Self, Fut, F>
fn then<F, Fut>(self, f: F) -> Then<Self, Fut, F>
Maps this stream’s items asynchronously to a different type, returning a
new stream of the resulting type. Read more
Source§fn merge<U>(self, other: U) -> Merge<Self, U>
fn merge<U>(self, other: U) -> Merge<Self, U>
Combine two streams into one by interleaving the output of both as it
is produced. Read more
Source§fn filter<F>(self, f: F) -> Filter<Self, F>
fn filter<F>(self, f: F) -> Filter<Self, F>
Filters the values produced by this stream according to the provided
predicate. Read more
Source§fn filter_map<T, F>(self, f: F) -> FilterMap<Self, F>
fn filter_map<T, F>(self, f: F) -> FilterMap<Self, F>
Filters the values produced by this stream while simultaneously mapping
them to a different type according to the provided closure. Read more
Source§fn fuse(self) -> Fuse<Self>where
Self: Sized,
fn fuse(self) -> Fuse<Self>where
Self: Sized,
Creates a stream which ends after the first
None
. Read moreSource§fn take(self, n: usize) -> Take<Self>where
Self: Sized,
fn take(self, n: usize) -> Take<Self>where
Self: Sized,
Creates a new stream of at most
n
items of the underlying stream. Read moreSource§fn take_while<F>(self, f: F) -> TakeWhile<Self, F>
fn take_while<F>(self, f: F) -> TakeWhile<Self, F>
Take elements from this stream while the provided predicate
resolves to
true
. Read moreSource§fn skip(self, n: usize) -> Skip<Self>where
Self: Sized,
fn skip(self, n: usize) -> Skip<Self>where
Self: Sized,
Creates a new stream that will skip the
n
first items of the
underlying stream. Read moreSource§fn skip_while<F>(self, f: F) -> SkipWhile<Self, F>
fn skip_while<F>(self, f: F) -> SkipWhile<Self, F>
Skip elements from the underlying stream while the provided predicate
resolves to
true
. Read moreSource§fn all<F>(&mut self, f: F) -> AllFuture<'_, Self, F>
fn all<F>(&mut self, f: F) -> AllFuture<'_, Self, F>
Tests if every element of the stream matches a predicate. Read more
Source§fn any<F>(&mut self, f: F) -> AnyFuture<'_, Self, F>
fn any<F>(&mut self, f: F) -> AnyFuture<'_, Self, F>
Tests if any element of the stream matches a predicate. Read more
Source§fn chain<U>(self, other: U) -> Chain<Self, U>
fn chain<U>(self, other: U) -> Chain<Self, U>
Combine two streams into one by first returning all values from the
first stream then all values from the second stream. Read more
Source§fn fold<B, F>(self, init: B, f: F) -> FoldFuture<Self, B, F>
fn fold<B, F>(self, init: B, f: F) -> FoldFuture<Self, B, F>
A combinator that applies a function to every element in a stream
producing a single, final value. Read more
Source§fn collect<T>(self) -> Collect<Self, T>
fn collect<T>(self) -> Collect<Self, T>
Drain stream pushing all emitted values into a collection. Read more
Source§fn timeout(self, duration: Duration) -> Timeout<Self>where
Self: Sized,
fn timeout(self, duration: Duration) -> Timeout<Self>where
Self: Sized,
Applies a per-item timeout to the passed stream. Read more
Source§fn timeout_repeating(self, interval: Interval) -> TimeoutRepeating<Self>where
Self: Sized,
fn timeout_repeating(self, interval: Interval) -> TimeoutRepeating<Self>where
Self: Sized,
Applies a per-item timeout to the passed stream. Read more