32 lines
610 B
Rust
32 lines
610 B
Rust
#![feature(async_fn_in_trait, impl_trait_projections, never_type)]
|
|
|
|
use node_poll_variants::PollVariants;
|
|
use physical_node::transducer::input::Poll;
|
|
|
|
#[derive(PollVariants)]
|
|
#[value_type = "SecondT"]
|
|
#[error_type = "!"]
|
|
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;
|
|
type Error = !;
|
|
|
|
async fn poll(&self) -> Result<Self::Value, Self::Error> {
|
|
Ok(self.second)
|
|
}
|
|
}
|
|
|
|
fn main() {}
|