hydroflow_plus/
runtime_context.rs1use std::marker::PhantomData;
2
3use hydroflow::scheduled::context::Context;
4use proc_macro2::TokenStream;
5use quote::quote;
6use stageleft::runtime_support::FreeVariable;
7
8#[derive(Clone)]
9pub struct RuntimeContext<'a> {
10 _phantom: PhantomData<&'a mut &'a ()>,
11}
12
13impl RuntimeContext<'_> {
14 pub fn new() -> Self {
15 Self {
16 _phantom: PhantomData,
17 }
18 }
19}
20
21impl Copy for RuntimeContext<'_> {}
22
23impl Default for RuntimeContext<'_> {
24 fn default() -> Self {
25 Self::new()
26 }
27}
28
29impl<'a> FreeVariable<&'a Context> for RuntimeContext<'a> {
30 fn to_tokens(self) -> (Option<TokenStream>, Option<TokenStream>) {
31 (None, Some(quote!(&context)))
32 }
33}