30 lines
533 B
Rust
30 lines
533 B
Rust
#![feature(async_fn_in_trait, impl_trait_projections)]
|
|
|
|
use node_poll_variants::PollVariants;
|
|
use physical_node::transducer::input::Poll;
|
|
|
|
#[derive(PollVariants)]
|
|
#[value_type = "SecondT"]
|
|
struct ExamplePoll<'a, FirstT, SecondT>
|
|
where
|
|
SecondT: Copy,
|
|
{
|
|
a: &'a i32,
|
|
b: i32,
|
|
first: FirstT,
|
|
second: SecondT,
|
|
}
|
|
|
|
impl<'a, FirstT, SecondT> Poll for ExamplePoll<'a, FirstT, SecondT>
|
|
where
|
|
SecondT: Copy,
|
|
{
|
|
type Value = SecondT;
|
|
|
|
async fn poll(&self) -> Self::Value {
|
|
self.second
|
|
}
|
|
}
|
|
|
|
fn main() {}
|