castle_types/
next.rs

1use tokio::sync::{mpsc, oneshot};
2
3use crate::{Value, Field};
4
5
6pub struct Next {
7    pub sender: mpsc::Sender<(oneshot::Sender<Result<Value, anyhow::Error>>, Field)>,
8}
9
10impl Next {
11    pub async fn resolve(self, field: Field) -> Result<Value, anyhow::Error> {
12        let (sender, receiver) = oneshot::channel();
13        self.sender.send((sender, field)).await?;
14        receiver.await?
15    }
16}