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}