pub struct Apply<A, B> where
A: 'static,
B: 'static, { /* private fields */ }
Expand description
Applies a function to each sample in the stream.
Inputs
in
: Input
Outputs
out
: Output after function applied
Usage
use futuresdr::blocks::Apply;
use futuresdr::runtime::Flowgraph;
use num_complex::Complex;
let mut fg = Flowgraph::new();
// Double each sample
let doubler = fg.add_block(Apply::<f32, f32>::new(|i| i * 2.0));
// Note that the closure can also hold state
let mut last_value = 0.0;
let moving_average = fg.add_block(Apply::<f32, f32>::new(move |i| {
let new_value = (last_value + i) / 2.0;
last_value = *i;
new_value
}));
// Additionally, the closure can change the type of the sample
let to_complex = fg.add_block(Apply::<f32, Complex<f32>>::new(|i| {
Complex {
re: 0.0,
im: *i,
}
}));
Implementations
Trait Implementations
sourceimpl<A, B> Kernel for Apply<A, B> where
A: 'static,
B: 'static,
impl<A, B> Kernel for Apply<A, B> where
A: 'static,
B: 'static,
fn work<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 mut self,
io: &'life1 mut WorkIo,
sio: &'life2 mut StreamIo,
_mio: &'life3 mut MessageIo<Self>,
_meta: &'life4 mut BlockMeta
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>> where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
Self: 'async_trait,
fn init<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 mut self,
_s: &'life1 mut StreamIo,
_m: &'life2 mut MessageIo<Self>,
_b: &'life3 mut BlockMeta
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>> where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Self: 'async_trait,
fn deinit<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 mut self,
_s: &'life1 mut StreamIo,
_m: &'life2 mut MessageIo<Self>,
_b: &'life3 mut BlockMeta
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>> where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Self: 'async_trait,
Auto Trait Implementations
impl<A, B> !RefUnwindSafe for Apply<A, B>
impl<A, B> Send for Apply<A, B>
impl<A, B> !Sync for Apply<A, B>
impl<A, B> Unpin for Apply<A, B>
impl<A, B> !UnwindSafe for Apply<A, B>
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
fn vzip(self) -> V
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more