diff --git a/editor/src/messages/portfolio/document/utility_types/network_interface.rs b/editor/src/messages/portfolio/document/utility_types/network_interface.rs index b1aa205ee6..aa72712689 100644 --- a/editor/src/messages/portfolio/document/utility_types/network_interface.rs +++ b/editor/src/messages/portfolio/document/utility_types/network_interface.rs @@ -741,7 +741,6 @@ impl NodeNetworkInterface { (concrete!(()), TypeSource::Error("Could not type from network")) } NodeInput::Scope(_) => todo!(), - NodeInput::Inline(_) => todo!(), NodeInput::Reflection(_) => todo!(), } } @@ -4403,17 +4402,17 @@ impl NodeNetworkInterface { self.try_set_upstream_to_chain(input_connector, network_path); } // If a connection is made to the imports - (NodeInput::Value { .. } | NodeInput::Scope { .. } | NodeInput::Inline { .. }, NodeInput::Import { .. }) => { + (NodeInput::Value { .. } | NodeInput::Scope { .. }, NodeInput::Import { .. }) => { self.unload_outward_wires(network_path); self.unload_wire(input_connector, network_path); } // If a connection to the imports is disconnected - (NodeInput::Import { .. }, NodeInput::Value { .. } | NodeInput::Scope { .. } | NodeInput::Inline { .. }) => { + (NodeInput::Import { .. }, NodeInput::Value { .. } | NodeInput::Scope { .. }) => { self.unload_outward_wires(network_path); self.unload_wire(input_connector, network_path); } // If a node is disconnected. - (NodeInput::Node { .. }, NodeInput::Value { .. } | NodeInput::Scope { .. } | NodeInput::Inline { .. }) => { + (NodeInput::Node { .. }, NodeInput::Value { .. } | NodeInput::Scope { .. }) => { self.unload_outward_wires(network_path); self.unload_wire(input_connector, network_path); @@ -5990,7 +5989,7 @@ impl NodeNetworkInterface { if !inserting_into_stack { match post_node_input { // Create a new stack - NodeInput::Value { .. } | NodeInput::Scope(_) | NodeInput::Inline(_) | NodeInput::Reflection(_) => { + NodeInput::Value { .. } | NodeInput::Scope(_) | NodeInput::Reflection(_) => { self.create_wire(&OutputConnector::node(layer.to_node(), 0), &post_node, network_path); let final_layer_position = after_move_post_layer_position + IVec2::new(-8, 3); @@ -6016,7 +6015,7 @@ impl NodeNetworkInterface { } else { match post_node_input { // Move to the bottom of the stack - NodeInput::Value { .. } | NodeInput::Scope(_) | NodeInput::Inline(_) | NodeInput::Reflection(_) => { + NodeInput::Value { .. } | NodeInput::Scope(_) | NodeInput::Reflection(_) => { let offset = after_move_post_layer_position - previous_layer_position + IVec2::new(0, 3 + height_above_layer); self.shift_absolute_node_position(&layer.to_node(), offset, network_path); self.create_wire(&OutputConnector::node(layer.to_node(), 0), &post_node, network_path); diff --git a/node-graph/graph-craft/src/document.rs b/node-graph/graph-craft/src/document.rs index dc6265a2a7..d385a41ce9 100644 --- a/node-graph/graph-craft/src/document.rs +++ b/node-graph/graph-craft/src/document.rs @@ -143,10 +143,6 @@ impl DocumentNode { let mut construction_args = ConstructionArgs::Nodes(vec![]); - // If we have one input of the type inline, set it as the construction args - if let &[NodeInput::Inline(ref inline)] = self.inputs.as_slice() { - construction_args = ConstructionArgs::Inline(inline.clone()); - } // If we have one input of the type inline, set it as the construction args if let &[NodeInput::Value { ref tagged_value, .. }] = self.inputs.as_slice() { construction_args = ConstructionArgs::Value(tagged_value.clone()); @@ -188,22 +184,6 @@ pub enum NodeInput { /// Input that is extracted from the parent scopes the node resides in. The string argument is the key. Reflection(DocumentNodeMetadata), - - /// A Rust source code string. Allows us to insert literal Rust code. Only used for GPU compilation. - /// We can use this whenever we spin up Rustc. Sort of like inline assembly, but because our language is Rust, it acts as inline Rust. - Inline(InlineRust), -} - -#[derive(Debug, Clone, PartialEq, Hash, DynAny, serde::Serialize, serde::Deserialize)] -pub struct InlineRust { - pub expr: String, - pub ty: Type, -} - -impl InlineRust { - pub fn new(expr: String, ty: Type) -> Self { - Self { expr, ty } - } } #[derive(Debug, Clone, PartialEq, Hash, DynAny, serde::Serialize, serde::Deserialize)] @@ -240,7 +220,6 @@ impl NodeInput { NodeInput::Node { .. } => true, NodeInput::Value { exposed, .. } => *exposed, NodeInput::Import { .. } => true, - NodeInput::Inline(_) => false, NodeInput::Scope(_) => false, NodeInput::Reflection(_) => false, } @@ -251,7 +230,6 @@ impl NodeInput { NodeInput::Node { .. } => unreachable!("ty() called on NodeInput::Node"), NodeInput::Value { tagged_value, .. } => tagged_value.ty(), NodeInput::Import { import_type, .. } => import_type.clone(), - NodeInput::Inline(_) => panic!("ty() called on NodeInput::Inline"), NodeInput::Scope(_) => panic!("ty() called on NodeInput::Scope"), NodeInput::Reflection(_) => concrete!(Metadata), } @@ -846,7 +824,6 @@ impl NodeNetwork { *import_index = parent_input_index; } NodeInput::Value { .. } => unreachable!("Value inputs should have been replaced with value nodes"), - NodeInput::Inline(_) => (), NodeInput::Scope(ref key) => { let (import_id, _ty) = self.scope_injections.get(key.as_ref()).expect("Tried to import a non existent key from scope"); // TODO use correct output index diff --git a/node-graph/graph-craft/src/proto.rs b/node-graph/graph-craft/src/proto.rs index de164c6cf9..1eea4b189a 100644 --- a/node-graph/graph-craft/src/proto.rs +++ b/node-graph/graph-craft/src/proto.rs @@ -1,5 +1,5 @@ +use crate::document::value; use crate::document::value::TaggedValue; -use crate::document::{InlineRust, value}; use crate::document::{NodeId, OriginalLocation}; pub use graphene_core::registry::*; use graphene_core::*; @@ -51,10 +51,6 @@ impl core::fmt::Display for ProtoNetwork { write_node(f, network, *id, indent + 1)?; } } - ConstructionArgs::Inline(inline) => { - f.write_str(&"\t".repeat(indent + 1))?; - f.write_fmt(format_args!("Inline construction argument: {inline:?}"))? - } } f.write_str(&"\t".repeat(indent))?; f.write_str("}\n")?; @@ -75,8 +71,6 @@ pub enum ConstructionArgs { /// The bool indicates whether to treat the node as lambda node. // TODO: use a struct for clearer naming. Nodes(Vec), - /// Used for GPU computation to work around the limitations of rust-gpu. - Inline(InlineRust), } impl Eq for ConstructionArgs {} @@ -109,7 +103,6 @@ impl Hash for ConstructionArgs { } } Self::Value(value) => value.hash(state), - Self::Inline(inline) => inline.hash(state), } } } @@ -119,7 +112,6 @@ impl ConstructionArgs { match self { ConstructionArgs::Nodes(nodes) => nodes.iter().map(|n| format!("n{:0x}", n.0)).collect(), ConstructionArgs::Value(value) => vec![value.to_primitive_string()], - ConstructionArgs::Inline(inline) => vec![inline.expr.clone()], } } } @@ -376,7 +368,6 @@ impl ProtoNetwork { // We pretend like we have already placed context modification nodes after ourselves because value nodes don't need to be cached ConstructionArgs::Value(_) => return (context_features.extract, Some(id)), ConstructionArgs::Nodes(items) => items.clone(), - ConstructionArgs::Inline(_) => return (context_features.extract, Some(id)), }; // Compute the dependencies for each branch and combine all of them @@ -686,7 +677,6 @@ impl TypingContext { .map(|node| node.ty()) }) .collect::, GraphErrors>>()?, - ConstructionArgs::Inline(ref inline) => vec![inline.ty.clone()], }; // Get the node input type from the proto node declaration diff --git a/node-graph/interpreted-executor/src/dynamic_executor.rs b/node-graph/interpreted-executor/src/dynamic_executor.rs index 2f52214ed7..71cb1c15cd 100644 --- a/node-graph/interpreted-executor/src/dynamic_executor.rs +++ b/node-graph/interpreted-executor/src/dynamic_executor.rs @@ -391,7 +391,6 @@ impl BorrowTree { }; self.store_node(node, id, path.into()); } - ConstructionArgs::Inline(_) => unimplemented!("Inline nodes are not supported yet"), ConstructionArgs::Nodes(ids) => { let ids = ids.to_vec(); let construction_nodes = self.node_deps(&ids);