diff --git a/node-graph/libraries/core-types/src/gnode.rs b/node-graph/libraries/core-types/src/gnode.rs
index 4a65b36554..934701b34a 100644
--- a/node-graph/libraries/core-types/src/gnode.rs
+++ b/node-graph/libraries/core-types/src/gnode.rs
@@ -119,6 +119,28 @@ where
}
}
+impl GNode for std::sync::Arc
+where
+ N: GNode + ?Sized,
+{
+ type Output = N::Output;
+
+ fn eval(&self, input: &Input) -> GPoll {
+ (**self).eval(input)
+ }
+
+ fn extent(&self, input: &Input) -> GPoll {
+ (**self).extent(input)
+ }
+
+ fn eval_batch<'a>(&self, input: &'a Input, range: Range, scratch: Option<&'a mut [MaybeUninit]>) -> BatchStatus<'a, Self::Output>
+ where
+ Input: InjectIndex + Copy,
+ {
+ (**self).eval_batch(input, range, scratch)
+ }
+}
+
pub struct StatusCell {
finality: Cell,
error: Cell