diff --git a/node-graph/libraries/core-types/src/node.rs b/node-graph/libraries/core-types/src/node.rs index e0b90fe3b3..8b7bc4d8ed 100644 --- a/node-graph/libraries/core-types/src/node.rs +++ b/node-graph/libraries/core-types/src/node.rs @@ -606,7 +606,7 @@ impl<'a, 'f, N> LazyInput<'a, 'f, N> { #[inline(always)] pub fn eval<'e, Input>(&self, ctx: &Input) -> Result, Interrupt> where - N: crate::record::DerivedRecordEdge<'e, Input>, + N: crate::record::DerivedRecordInput<'e, Input>, 'f: 'e, { self.node.eval_derived(self.cell, self.input_index, ctx, self.frames) diff --git a/node-graph/libraries/core-types/src/record/input.rs b/node-graph/libraries/core-types/src/record/input.rs index 4d028896af..fe10fc506f 100644 --- a/node-graph/libraries/core-types/src/record/input.rs +++ b/node-graph/libraries/core-types/src/record/input.rs @@ -12,12 +12,12 @@ use crate::node::Node; /// `for<'d> Node>` cannot also say the derived context's arena /// is at `'d`: the equality binding `ExtractArena` is an /// unconstrained position under a higher rank. -pub trait DerivedRecordEdge<'derived, C> { +pub trait DerivedRecordInput<'derived, C> { fn eval_derived(&self, cell: &crate::node::StatusCell, input_index: usize, ctx: &C, frames: &Frames<'derived>) -> Result, crate::gpoll::Interrupt>; fn extent_at_derived(&self, ctx: &C, level: u8, frames: &Frames<'derived>) -> GPoll; } -impl<'derived, C, N> DerivedRecordEdge<'derived, C> for N +impl<'derived, C, N> DerivedRecordInput<'derived, C> for N where N: Node, C: crate::context::ExtractArena, @@ -248,7 +248,7 @@ impl<'a, 'e, Out, N> ElementEdge<'a, 'e, Out, N> { /// again at the next one. pub fn eval<'d, C>(&self, ctx: &C) -> GPoll where - N: DerivedRecordEdge<'d, C>, + N: DerivedRecordInput<'d, C>, 'e: 'd, { let cell = crate::node::StatusCell::new(); @@ -316,7 +316,7 @@ impl<'a, 'e, Out, N> ElementLazyInput<'a, 'e, Out, N> { /// the record's claim dies with the call. pub fn eval<'d, C>(&self, ctx: &C) -> Result where - N: DerivedRecordEdge<'d, C>, + N: DerivedRecordInput<'d, C>, 'e: 'd, { let scope = self.frames.scope(); @@ -351,7 +351,7 @@ impl<'a, 'e, N> RecordLazyInput<'a, 'e, N> { pub fn eval<'d, C>(&self, ctx: &C) -> Result, crate::gpoll::Interrupt> where - N: DerivedRecordEdge<'d, C>, + N: DerivedRecordInput<'d, C>, 'e: 'd, { Ok(self.node.eval_derived(self.cell, self.input_index, ctx, self.frames)?.rebind()) @@ -363,7 +363,7 @@ impl<'a, 'e, N> RecordLazyInput<'a, 'e, N> { pub fn inner_extent(&self, ctx: &B) -> Result where B: crate::context::DeriveCtx, - N: for<'d> DerivedRecordEdge<'d, crate::context::Derived<'d, B>>, + N: for<'d> DerivedRecordInput<'d, crate::context::Derived<'d, B>>, { inner_extent_of(self.node, ctx, 0, self.inner_levels, self.input_index, self.frames) } @@ -373,7 +373,7 @@ impl<'a, 'e, N> RecordLazyInput<'a, 'e, N> { pub fn inner_extent_at(&self, ctx: &B, copy: u64) -> Result where B: crate::context::DeriveCtx, - N: for<'d> DerivedRecordEdge<'d, crate::context::Derived<'d, B>>, + N: for<'d> DerivedRecordInput<'d, crate::context::Derived<'d, B>>, { inner_extent_of(self.node, ctx, copy, self.inner_levels, self.input_index, self.frames) } @@ -383,7 +383,7 @@ impl<'a, 'e, N> RecordLazyInput<'a, 'e, N> { fn inner_extent_of(node: &N, ctx: &B, copy: u64, levels: u8, input_index: usize, frames: &Frames<'_>) -> Result where B: crate::context::DeriveCtx, - N: for<'d> DerivedRecordEdge<'d, crate::context::Derived<'d, B>>, + N: for<'d> DerivedRecordInput<'d, crate::context::Derived<'d, B>>, { let mut frame = crate::context::IndexLink { index: 0, outer: None }; let derived = ctx.push_level(&mut frame, copy, 0); @@ -405,7 +405,7 @@ where fn probed_inner(node: &N, ctx: &B, copy: u64, input_index: usize, frames: &Frames<'_>) -> Result where B: crate::context::DeriveCtx, - N: for<'d> DerivedRecordEdge<'d, crate::context::Derived<'d, B>>, + N: for<'d> DerivedRecordInput<'d, crate::context::Derived<'d, B>>, { let cell = crate::node::StatusCell::new(); let mut count: u64 = 0; @@ -466,14 +466,14 @@ impl<'a, 'e, Out, N> DerivedLazyInput<'a, 'e, Out, N> { pub fn inner_extent(&self, ctx: &B) -> Result where B: crate::context::DeriveCtx, - N: for<'d> DerivedRecordEdge<'d, crate::context::Derived<'d, B>>, + N: for<'d> DerivedRecordInput<'d, crate::context::Derived<'d, B>>, { inner_extent_of(self.node, ctx, 0, self.inner_levels, self.input_index, self.frames) } pub fn eval<'d, C>(&self, ctx: &C) -> Result where - N: DerivedRecordEdge<'d, C>, + N: DerivedRecordInput<'d, C>, 'e: 'd, { let value: RecordValue<'e> = self.node.eval_derived(self.cell, self.input_index, ctx, self.frames)?.rebind(); diff --git a/node-graph/libraries/core-types/src/record/mod.rs b/node-graph/libraries/core-types/src/record/mod.rs index 2acf93f4d8..cc6496fa23 100644 --- a/node-graph/libraries/core-types/src/record/mod.rs +++ b/node-graph/libraries/core-types/src/record/mod.rs @@ -23,7 +23,7 @@ mod testkit; pub use access::{Rec, RecordValue, apply_plan, borrow_element, erase_static, read_at, read_element, token_only, write_element, write_element_sized, write_field}; pub use frames::{FrameArena, FrameScope, Frames}; -pub use input::{DerivedLazyInput, DerivedRecordEdge, ElementEdge, ElementLazyInput, LevelStatus, RecordEdgeInput, RecordExtract, RecordLazyInput, fill_frames, materialize_batch, materialize_level}; +pub use input::{DerivedLazyInput, DerivedRecordInput, ElementEdge, ElementLazyInput, LevelStatus, RecordEdgeInput, RecordExtract, RecordLazyInput, fill_frames, materialize_batch, materialize_level}; pub use layout::{ ElToken, ElementSpec, ElementWrite, ElementWritePick, ElementWritePickHashed, ElementWritePickPlain, FieldDesc, FieldOffset, FieldWrite, InputReads, Layout, LayoutMeta, RecordLayout, copy_plan, element_dims, element_parked, element_write, element_write_hashed, empty_layout, diff --git a/node-graph/libraries/core-types/src/registry.rs b/node-graph/libraries/core-types/src/registry.rs index a914498b9b..886bb2b128 100644 --- a/node-graph/libraries/core-types/src/registry.rs +++ b/node-graph/libraries/core-types/src/registry.rs @@ -421,7 +421,7 @@ mod tests { C: Ctx + crate::context::DeriveCtx, T: Clone + 'static, Vec: Send + Sync + dyn_any::StaticTypeSized, - Node0: for<'x> crate::record::DerivedRecordEdge<'x, crate::context::Derived<'x, C>>, + Node0: for<'x> crate::record::DerivedRecordInput<'x, crate::context::Derived<'x, C>>, { fn serve<'e, 'l>(&self, input: &C, mut slot: FrameClaim<'e, 'l>) -> GPoll> where @@ -497,7 +497,7 @@ mod tests { impl Node for ShiftFootprintNode where C: Ctx + crate::context::DeriveCtx + crate::context::ExtractFootprint, - Node0: for<'x> crate::record::DerivedRecordEdge<'x, crate::context::Derived<'x, C>>, + Node0: for<'x> crate::record::DerivedRecordInput<'x, crate::context::Derived<'x, C>>, { fn serve<'e, 'l>(&self, input: &C, mut slot: FrameClaim<'e, 'l>) -> GPoll> where diff --git a/node-graph/node-macro/src/codegen.rs b/node-graph/node-macro/src/codegen.rs index 9060aae99f..182b3ce7fb 100644 --- a/node-graph/node-macro/src/codegen.rs +++ b/node-graph/node-macro/src/codegen.rs @@ -999,7 +999,7 @@ pub(crate) fn generate_node_impl(crate_ident: &CrateIdent, parsed: &ParsedNodeFn if routing_generic.as_ref().is_some_and(|generic| crate::codegen::classify::routing_source_output(source_ty, generic)) { let source_generic = format_ident!("__Source{index}"); generics.push(quote! { - #source_generic: for<'__derived> #core_types::record::DerivedRecordEdge<'__derived, #core_types::context::Derived<'__derived, #ctx_ident>> + #source_generic: for<'__derived> #core_types::record::DerivedRecordInput<'__derived, #core_types::context::Derived<'__derived, #ctx_ident>> }); } } @@ -1007,7 +1007,7 @@ pub(crate) fn generate_node_impl(crate_ident: &CrateIdent, parsed: &ParsedNodeFn if lazy_carrier && derives { let source_generic = format_ident!("__Source0"); generics.push(quote! { - #source_generic: for<'__derived> #core_types::record::DerivedRecordEdge<'__derived, #core_types::context::Derived<'__derived, #ctx_ident>> + #source_generic: for<'__derived> #core_types::record::DerivedRecordInput<'__derived, #core_types::context::Derived<'__derived, #ctx_ident>> }); } if flip { @@ -1015,7 +1015,7 @@ pub(crate) fn generate_node_impl(crate_ident: &CrateIdent, parsed: &ParsedNodeFn if matches!(&field.ty, ParsedFieldType::Node(_)) { let source_generic = format_ident!("__Source{index}"); let derived_extra = derives - .then(|| quote!(+ for<'__derived> #core_types::record::DerivedRecordEdge<'__derived, #core_types::context::Derived<'__derived, #ctx_ident>>)) + .then(|| quote!(+ for<'__derived> #core_types::record::DerivedRecordInput<'__derived, #core_types::context::Derived<'__derived, #ctx_ident>>)) .into_iter(); generics.push(quote! { #source_generic: #core_types::node::Node<#ctx_ident> #(#derived_extra)* @@ -1028,7 +1028,7 @@ pub(crate) fn generate_node_impl(crate_ident: &CrateIdent, parsed: &ParsedNodeFn if matches!(&field.ty, ParsedFieldType::Node(_)) && matches!(crate::codegen::ir::lazy_binding(&node, index), LazyBinding::Element) { let source_generic = format_ident!("__Source{index}"); let derived_extra = derives - .then(|| quote!(+ for<'__derived> #core_types::record::DerivedRecordEdge<'__derived, #core_types::context::Derived<'__derived, #ctx_ident>>)) + .then(|| quote!(+ for<'__derived> #core_types::record::DerivedRecordInput<'__derived, #core_types::context::Derived<'__derived, #ctx_ident>>)) .into_iter(); generics.push(quote! { #source_generic: #core_types::node::Node<#ctx_ident> #(#derived_extra)* @@ -1059,7 +1059,7 @@ pub(crate) fn generate_node_impl(crate_ident: &CrateIdent, parsed: &ParsedNodeFn quote!(#pat: &#ty) }); - let derived_edge = quote!(for<'__derived> #core_types::record::DerivedRecordEdge<'__derived, #core_types::context::Derived<'__derived, #ctx_ident>>); + let derived_edge = quote!(for<'__derived> #core_types::record::DerivedRecordInput<'__derived, #core_types::context::Derived<'__derived, #ctx_ident>>); let lazy_bound = || match derives { true => { let derived_edge = derived_edge.clone(); @@ -1558,7 +1558,7 @@ pub(crate) fn generate_node_impl(crate_ident: &CrateIdent, parsed: &ParsedNodeFn let #query = |__copy: u64, __lvl: u8| { let mut __frame = #core_types::context::IndexLink { index: 0, outer: None }; let __derived = #core_types::context::DeriveCtx::push_level(__input, &mut __frame, __copy, 0); - #core_types::record::DerivedRecordEdge::extent_at_derived(&self.#name, &__derived, __lvl, &__frames.scope()) + #core_types::record::DerivedRecordInput::extent_at_derived(&self.#name, &__derived, __lvl, &__frames.scope()) }; let #arg = #core_types::extent::ExtentIn::new(&#query); }, @@ -1650,7 +1650,7 @@ pub(crate) fn generate_node_impl(crate_ident: &CrateIdent, parsed: &ParsedNodeFn let __query = |_: u64, __lvl: u8| { let __head = #core_types::context::DeriveCtx::index_head(__input); let __derived = #core_types::context::DeriveCtx::replaced(__input, __head.index); - #core_types::record::DerivedRecordEdge::extent_at_derived(&self.#name, &__derived, __lvl, &__frames.scope()) + #core_types::record::DerivedRecordInput::extent_at_derived(&self.#name, &__derived, __lvl, &__frames.scope()) }; }, _ => quote! {