pub struct RootChecked<H, Root = Node>(/* private fields */);Expand description
A view of the whole Hugr. (Just provides static checking of the type of the root node)
Implementations§
Source§impl<H: RootTagged + AsRef<Hugr>, Root: NodeHandle> RootChecked<H, Root>
 
impl<H: RootTagged + AsRef<Hugr>, Root: NodeHandle> RootChecked<H, Root>
Source§impl<Root> RootChecked<Hugr, Root>
 
impl<Root> RootChecked<Hugr, Root>
Source§impl<Root> RootChecked<&mut Hugr, Root>
 
impl<Root> RootChecked<&mut Hugr, Root>
Sourcepub fn borrow(&self) -> RootChecked<&Hugr, Root>
 
pub fn borrow(&self) -> RootChecked<&Hugr, Root>
Allows immutably borrowing the underlying mutable reference
Trait Implementations§
Source§impl<H: Clone, Root: Clone> Clone for RootChecked<H, Root>
 
impl<H: Clone, Root: Clone> Clone for RootChecked<H, Root>
Source§fn clone(&self) -> RootChecked<H, Root>
 
fn clone(&self) -> RootChecked<H, Root>
Returns a copy of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
 
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from 
source. Read moreSource§impl<H: HugrMutInternals + AsRef<Hugr>, Root: NodeHandle> HugrMut for RootChecked<H, Root>
 
impl<H: HugrMutInternals + AsRef<Hugr>, Root: NodeHandle> HugrMut for RootChecked<H, Root>
Source§fn get_metadata_mut(
    &mut self,
    node: Node,
    key: impl AsRef<str>,
) -> &mut NodeMetadata
 
fn get_metadata_mut( &mut self, node: Node, key: impl AsRef<str>, ) -> &mut NodeMetadata
Returns a metadata entry associated with a node. Read more
Source§fn set_metadata(
    &mut self,
    node: Node,
    key: impl AsRef<str>,
    metadata: impl Into<NodeMetadata>,
)
 
fn set_metadata( &mut self, node: Node, key: impl AsRef<str>, metadata: impl Into<NodeMetadata>, )
Sets a metadata value associated with a node. Read more
Source§fn remove_metadata(&mut self, node: Node, key: impl AsRef<str>)
 
fn remove_metadata(&mut self, node: Node, key: impl AsRef<str>)
Remove a metadata entry associated with a node. Read more
Source§fn take_node_metadata(&mut self, node: Node) -> Option<NodeMetadataMap>
 
fn take_node_metadata(&mut self, node: Node) -> Option<NodeMetadataMap>
Retrieve the complete metadata map for a node.
Source§fn overwrite_node_metadata(
    &mut self,
    node: Node,
    metadata: Option<NodeMetadataMap>,
)
 
fn overwrite_node_metadata( &mut self, node: Node, metadata: Option<NodeMetadataMap>, )
Overwrite the complete metadata map for a node. Read more
Source§fn add_node_with_parent(&mut self, parent: Node, op: impl Into<OpType>) -> Node
 
fn add_node_with_parent(&mut self, parent: Node, op: impl Into<OpType>) -> Node
Add a node to the graph with a parent in the hierarchy. Read more
Source§fn add_node_before(
    &mut self,
    sibling: Node,
    nodetype: impl Into<OpType>,
) -> Node
 
fn add_node_before( &mut self, sibling: Node, nodetype: impl Into<OpType>, ) -> Node
Add a node to the graph as the previous sibling of another node. Read more
Source§fn add_node_after(&mut self, sibling: Node, op: impl Into<OpType>) -> Node
 
fn add_node_after(&mut self, sibling: Node, op: impl Into<OpType>) -> Node
Add a node to the graph as the next sibling of another node. Read more
Source§fn remove_node(&mut self, node: Node) -> OpType
 
fn remove_node(&mut self, node: Node) -> OpType
Remove a node from the graph and return the node weight. Read more
Source§fn connect(
    &mut self,
    src: Node,
    src_port: impl Into<OutgoingPort>,
    dst: Node,
    dst_port: impl Into<IncomingPort>,
)
 
fn connect( &mut self, src: Node, src_port: impl Into<OutgoingPort>, dst: Node, dst_port: impl Into<IncomingPort>, )
Connect two nodes at the given ports. Read more
Source§fn disconnect(&mut self, node: Node, port: impl Into<Port>)
 
fn disconnect(&mut self, node: Node, port: impl Into<Port>)
Disconnects all edges from the given port. Read more
Source§fn add_other_edge(
    &mut self,
    src: Node,
    dst: Node,
) -> (OutgoingPort, IncomingPort)
 
fn add_other_edge( &mut self, src: Node, dst: Node, ) -> (OutgoingPort, IncomingPort)
Adds a non-dataflow edge between two nodes. The kind is given by the
operation’s 
OpTrait::other_input or OpTrait::other_output. Read moreSource§fn insert_hugr(&mut self, root: Node, other: Hugr) -> InsertionResult
 
fn insert_hugr(&mut self, root: Node, other: Hugr) -> InsertionResult
Insert another hugr into this one, under a given root node. Read more
Source§fn insert_from_view(
    &mut self,
    root: Node,
    other: &impl HugrView,
) -> InsertionResult
 
fn insert_from_view( &mut self, root: Node, other: &impl HugrView, ) -> InsertionResult
Copy another hugr into this one, under a given root node. Read more
Source§fn insert_subgraph(
    &mut self,
    root: Node,
    other: &impl HugrView,
    subgraph: &SiblingSubgraph,
) -> HashMap<Node, Node>
 
fn insert_subgraph( &mut self, root: Node, other: &impl HugrView, subgraph: &SiblingSubgraph, ) -> HashMap<Node, Node>
Copy a subgraph from another hugr into this one, under a given root node. Read more
Source§impl<H: HugrMutInternals + AsRef<Hugr>, Root> HugrMutInternals for RootChecked<H, Root>where
    Root: NodeHandle,
 
impl<H: HugrMutInternals + AsRef<Hugr>, Root> HugrMutInternals for RootChecked<H, Root>where
    Root: NodeHandle,
Source§fn set_num_ports(&mut self, node: Node, incoming: usize, outgoing: usize)
 
fn set_num_ports(&mut self, node: Node, incoming: usize, outgoing: usize)
Set the number of ports on a node. This may invalidate the node’s 
PortIndex. Read moreSource§fn add_ports(
    &mut self,
    node: Node,
    direction: Direction,
    amount: isize,
) -> Range<usize>
 
fn add_ports( &mut self, node: Node, direction: Direction, amount: isize, ) -> Range<usize>
Alter the number of ports on a node and returns a range with the new
port offsets, if any. This may invalidate the node’s 
PortIndex. Read moreSource§fn move_after_sibling(&mut self, node: Node, after: Node)
 
fn move_after_sibling(&mut self, node: Node, after: Node)
Move a node in the hierarchy to be the subsequent sibling of another
node. Read more
Source§impl<H: AsRef<Hugr>, Root: NodeHandle> RootTagged for RootChecked<H, Root>
 
impl<H: AsRef<Hugr>, Root: NodeHandle> RootTagged for RootChecked<H, Root>
Source§type RootHandle = Root
 
type RootHandle = Root
The kind of handle that can be used to refer to the root node. Read more
Auto Trait Implementations§
impl<H, Root> Freeze for RootChecked<H, Root>where
    H: Freeze,
impl<H, Root> RefUnwindSafe for RootChecked<H, Root>where
    H: RefUnwindSafe,
    Root: RefUnwindSafe,
impl<H, Root> Send for RootChecked<H, Root>
impl<H, Root> Sync for RootChecked<H, Root>
impl<H, Root> Unpin for RootChecked<H, Root>
impl<H, Root> UnwindSafe for RootChecked<H, Root>where
    H: UnwindSafe,
    Root: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
 
impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
 
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
    T: Clone,
 
impl<T> CloneToUninit for Twhere
    T: Clone,
Source§unsafe fn clone_to_uninit(&self, dst: *mut T)
 
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit)Source§impl<T> Downcast for Twhere
    T: Any,
 
impl<T> Downcast for Twhere
    T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
 
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert 
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
 
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert 
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
 
fn as_any(&self) -> &(dyn Any + 'static)
Convert 
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
 
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert 
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
 
impl<T> DowncastSync for T
Source§impl<T> FmtForward for T
 
impl<T> FmtForward for T
Source§fn fmt_binary(self) -> FmtBinary<Self>where
    Self: Binary,
 
fn fmt_binary(self) -> FmtBinary<Self>where
    Self: Binary,
Causes 
self to use its Binary implementation when Debug-formatted.Source§fn fmt_display(self) -> FmtDisplay<Self>where
    Self: Display,
 
fn fmt_display(self) -> FmtDisplay<Self>where
    Self: Display,
Causes 
self to use its Display implementation when
Debug-formatted.Source§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
    Self: LowerExp,
 
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
    Self: LowerExp,
Causes 
self to use its LowerExp implementation when
Debug-formatted.Source§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
    Self: LowerHex,
 
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
    Self: LowerHex,
Causes 
self to use its LowerHex implementation when
Debug-formatted.Source§fn fmt_octal(self) -> FmtOctal<Self>where
    Self: Octal,
 
fn fmt_octal(self) -> FmtOctal<Self>where
    Self: Octal,
Causes 
self to use its Octal implementation when Debug-formatted.Source§fn fmt_pointer(self) -> FmtPointer<Self>where
    Self: Pointer,
 
fn fmt_pointer(self) -> FmtPointer<Self>where
    Self: Pointer,
Causes 
self to use its Pointer implementation when
Debug-formatted.Source§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
    Self: UpperExp,
 
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
    Self: UpperExp,
Causes 
self to use its UpperExp implementation when
Debug-formatted.Source§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
    Self: UpperHex,
 
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
    Self: UpperHex,
Causes 
self to use its UpperHex implementation when
Debug-formatted.Source§impl<T> HugrInternals for T
 
impl<T> HugrInternals for T
Source§type Portgraph<'p> = &'p MultiPortGraph
where
    T: 'p
 
type Portgraph<'p> = &'p MultiPortGraph where T: 'p
The underlying portgraph view type.
Source§fn portgraph(&self) -> <T as HugrInternals>::Portgraph<'_>
 
fn portgraph(&self) -> <T as HugrInternals>::Portgraph<'_>
Returns a reference to the underlying portgraph.
Source§impl<T> HugrView for T
 
impl<T> HugrView for T
Source§type Nodes<'a> = MapSpecialCase<Nodes<'a>, MapSpecialCaseFnInto<Node>>
where
    T: 'a
 
type Nodes<'a> = MapSpecialCase<Nodes<'a>, MapSpecialCaseFnInto<Node>> where T: 'a
An Iterator over the nodes in a Hugr(View)
Source§type NodePorts<'a> = MapSpecialCase<NodePortOffsets, MapSpecialCaseFnInto<Port>>
where
    T: 'a
 
type NodePorts<'a> = MapSpecialCase<NodePortOffsets, MapSpecialCaseFnInto<Port>> where T: 'a
An Iterator over (some or all) ports of a node
Source§type Children<'a> = MapSpecialCase<Children<'a>, MapSpecialCaseFnInto<Node>>
where
    T: 'a
 
type Children<'a> = MapSpecialCase<Children<'a>, MapSpecialCaseFnInto<Node>> where T: 'a
An Iterator over the children of a node
Source§type Neighbours<'a> = MapSpecialCase<Neighbours<'a>, MapSpecialCaseFnInto<Node>>
where
    T: 'a
 
type Neighbours<'a> = MapSpecialCase<Neighbours<'a>, MapSpecialCaseFnInto<Node>> where T: 'a
An Iterator over (some or all) the nodes neighbouring a node
Source§type PortLinks<'a> = MapCtx<WithCtx<PortLinks<'a>, &'a Hugr>, (Node, Port)>
where
    T: 'a
 
type PortLinks<'a> = MapCtx<WithCtx<PortLinks<'a>, &'a Hugr>, (Node, Port)> where T: 'a
Iterator over the children of a node
Source§type NodeConnections<'a> = MapCtx<WithCtx<NodeConnections<'a>, &'a Hugr>, [Port; 2]>
where
    T: 'a
 
type NodeConnections<'a> = MapCtx<WithCtx<NodeConnections<'a>, &'a Hugr>, [Port; 2]> where T: 'a
Iterator over the links between two nodes.
Source§fn contains_node(&self, node: Node) -> bool
 
fn contains_node(&self, node: Node) -> bool
Returns whether the node exists.
Source§fn node_count(&self) -> usize
 
fn node_count(&self) -> usize
Returns the number of nodes in the hugr.
Source§fn edge_count(&self) -> usize
 
fn edge_count(&self) -> usize
Returns the number of edges in the hugr.
Source§fn node_ports(
    &self,
    node: Node,
    dir: Direction,
) -> <T as HugrView>::NodePorts<'_>
 
fn node_ports( &self, node: Node, dir: Direction, ) -> <T as HugrView>::NodePorts<'_>
Iterator over ports of node in a given direction.
Source§fn all_node_ports(&self, node: Node) -> <T as HugrView>::NodePorts<'_>
 
fn all_node_ports(&self, node: Node) -> <T as HugrView>::NodePorts<'_>
Iterator over both the input and output ports of node.
Source§fn linked_ports(
    &self,
    node: Node,
    port: impl Into<Port>,
) -> <T as HugrView>::PortLinks<'_>
 
fn linked_ports( &self, node: Node, port: impl Into<Port>, ) -> <T as HugrView>::PortLinks<'_>
Iterator over the nodes and ports connected to a port.
Source§fn node_connections(
    &self,
    node: Node,
    other: Node,
) -> <T as HugrView>::NodeConnections<'_>
 
fn node_connections( &self, node: Node, other: Node, ) -> <T as HugrView>::NodeConnections<'_>
Iterator the links between two nodes.
Source§fn num_ports(&self, node: Node, dir: Direction) -> usize
 
fn num_ports(&self, node: Node, dir: Direction) -> usize
Number of ports in node for a given direction.
Source§fn children(&self, node: Node) -> <T as HugrView>::Children<'_>
 
fn children(&self, node: Node) -> <T as HugrView>::Children<'_>
Return iterator over the direct children of node.
Source§fn neighbours(
    &self,
    node: Node,
    dir: Direction,
) -> <T as HugrView>::Neighbours<'_>
 
fn neighbours( &self, node: Node, dir: Direction, ) -> <T as HugrView>::Neighbours<'_>
Iterates over neighbour nodes in the given direction.
May contain duplicates if the graph has multiple links between nodes.
Source§fn all_neighbours(&self, node: Node) -> <T as HugrView>::Neighbours<'_>
 
fn all_neighbours(&self, node: Node) -> <T as HugrView>::Neighbours<'_>
Iterates over the input and output neighbours of the 
node in sequence.Source§fn valid_node(&self, node: Node) -> bool
 
fn valid_node(&self, node: Node) -> bool
Validates that a node is valid in the graph.
Source§fn valid_non_root(&self, node: Node) -> bool
 
fn valid_non_root(&self, node: Node) -> bool
Validates that a node is a valid root descendant in the graph. Read more
Source§fn get_optype(&self, node: Node) -> &OpType
 
fn get_optype(&self, node: Node) -> &OpType
Returns the operation type of a node.
Source§fn get_metadata(
    &self,
    node: Node,
    key: impl AsRef<str>,
) -> Option<&NodeMetadata>
 
fn get_metadata( &self, node: Node, key: impl AsRef<str>, ) -> Option<&NodeMetadata>
Returns the metadata associated with a node.
Source§fn get_node_metadata(&self, node: Node) -> Option<&NodeMetadataMap>
 
fn get_node_metadata(&self, node: Node) -> Option<&NodeMetadataMap>
Retrieve the complete metadata map for a node.
Source§fn node_outputs(&self, node: Node) -> OutgoingPorts<Self::NodePorts<'_>>
 
fn node_outputs(&self, node: Node) -> OutgoingPorts<Self::NodePorts<'_>>
Iterator over output ports of node.
Like 
node_ports(node, Direction::Outgoing)
but preserves knowledge that the ports are OutgoingPorts.Source§fn node_inputs(&self, node: Node) -> IncomingPorts<Self::NodePorts<'_>>
 
fn node_inputs(&self, node: Node) -> IncomingPorts<Self::NodePorts<'_>>
Iterator over inputs ports of node.
Like 
node_ports(node, Direction::Incoming)
but preserves knowledge that the ports are IncomingPorts.Source§fn all_linked_ports(
    &self,
    node: Node,
    dir: Direction,
) -> Either<impl Iterator<Item = (Node, OutgoingPort)>, impl Iterator<Item = (Node, IncomingPort)>> ⓘ
 
fn all_linked_ports( &self, node: Node, dir: Direction, ) -> Either<impl Iterator<Item = (Node, OutgoingPort)>, impl Iterator<Item = (Node, IncomingPort)>> ⓘ
Iterator over all the nodes and ports connected to a node in a given direction.
Source§fn all_linked_outputs(
    &self,
    node: Node,
) -> impl Iterator<Item = (Node, OutgoingPort)>
 
fn all_linked_outputs( &self, node: Node, ) -> impl Iterator<Item = (Node, OutgoingPort)>
Iterator over all the nodes and ports connected to a node’s inputs.
Source§fn all_linked_inputs(
    &self,
    node: Node,
) -> impl Iterator<Item = (Node, IncomingPort)>
 
fn all_linked_inputs( &self, node: Node, ) -> impl Iterator<Item = (Node, IncomingPort)>
Iterator over all the nodes and ports connected to a node’s outputs.
Source§fn single_linked_port(
    &self,
    node: Node,
    port: impl Into<Port>,
) -> Option<(Node, Port)>
 
fn single_linked_port( &self, node: Node, port: impl Into<Port>, ) -> Option<(Node, Port)>
If there is exactly one port connected to this port, return
it and its node.
Source§fn single_linked_output(
    &self,
    node: Node,
    port: impl Into<IncomingPort>,
) -> Option<(Node, OutgoingPort)>
 
fn single_linked_output( &self, node: Node, port: impl Into<IncomingPort>, ) -> Option<(Node, OutgoingPort)>
If there is exactly one OutgoingPort connected to this IncomingPort, return
it and its node.
Source§fn single_linked_input(
    &self,
    node: Node,
    port: impl Into<OutgoingPort>,
) -> Option<(Node, IncomingPort)>
 
fn single_linked_input( &self, node: Node, port: impl Into<OutgoingPort>, ) -> Option<(Node, IncomingPort)>
If there is exactly one IncomingPort connected to this OutgoingPort, return
it and its node.
Source§fn linked_outputs(
    &self,
    node: Node,
    port: impl Into<IncomingPort>,
) -> OutgoingNodePorts<Self::PortLinks<'_>>
 
fn linked_outputs( &self, node: Node, port: impl Into<IncomingPort>, ) -> OutgoingNodePorts<Self::PortLinks<'_>>
Iterator over the nodes and output ports connected to a given input port.
Like 
linked_ports but preserves knowledge
that the linked ports are OutgoingPorts.Source§fn linked_inputs(
    &self,
    node: Node,
    port: impl Into<OutgoingPort>,
) -> IncomingNodePorts<Self::PortLinks<'_>>
 
fn linked_inputs( &self, node: Node, port: impl Into<OutgoingPort>, ) -> IncomingNodePorts<Self::PortLinks<'_>>
Iterator over the nodes and input ports connected to a given output port
Like 
linked_ports but preserves knowledge
that the linked ports are IncomingPorts.Source§fn is_linked(&self, node: Node, port: impl Into<Port>) -> bool
 
fn is_linked(&self, node: Node, port: impl Into<Port>) -> bool
Returns whether a port is connected.
Source§fn num_inputs(&self, node: Node) -> usize
 
fn num_inputs(&self, node: Node) -> usize
Number of inputs to a node.
Shorthand for 
num_ports(node, Direction::Incoming).Source§fn num_outputs(&self, node: Node) -> usize
 
fn num_outputs(&self, node: Node) -> usize
Number of outputs from a node.
Shorthand for 
num_ports(node, Direction::Outgoing).Source§fn input_neighbours(&self, node: Node) -> Self::Neighbours<'_>
 
fn input_neighbours(&self, node: Node) -> Self::Neighbours<'_>
Iterates over the input neighbours of the 
node.
Shorthand for neighbours(node, Direction::Incoming).Source§fn output_neighbours(&self, node: Node) -> Self::Neighbours<'_>
 
fn output_neighbours(&self, node: Node) -> Self::Neighbours<'_>
Iterates over the output neighbours of the 
node.
Shorthand for neighbours(node, Direction::Outgoing).Source§fn get_io(&self, node: Node) -> Option<[Node; 2]>
 
fn get_io(&self, node: Node) -> Option<[Node; 2]>
Get the input and output child nodes of a dataflow parent.
If the node isn’t a dataflow parent, then return None
Source§fn inner_function_type(&self) -> Option<Signature>
 
fn inner_function_type(&self) -> Option<Signature>
Returns the function type defined by this dataflow HUGR. Read more
Source§fn poly_func_type(&self) -> Option<PolyFuncType>
 
fn poly_func_type(&self) -> Option<PolyFuncType>
Returns the function type defined by this HUGR. Read more
Source§fn as_petgraph(&self) -> PetgraphWrapper<'_, Self>where
    Self: Sized,
 
fn as_petgraph(&self) -> PetgraphWrapper<'_, Self>where
    Self: Sized,
Return a wrapper over the view that can be used in petgraph algorithms.
Source§fn mermaid_string(&self) -> String
 
fn mermaid_string(&self) -> String
Return the mermaid representation of the underlying hierarchical graph. Read more
Source§fn mermaid_string_with_config(&self, config: RenderConfig) -> String
 
fn mermaid_string_with_config(&self, config: RenderConfig) -> String
Return the mermaid representation of the underlying hierarchical graph. Read more
Source§fn dot_string(&self) -> Stringwhere
    Self: Sized,
 
fn dot_string(&self) -> Stringwhere
    Self: Sized,
Return the graphviz representation of the underlying graph and hierarchy side by side. Read more
Source§fn static_source(&self, node: Node) -> Option<Node>
 
fn static_source(&self, node: Node) -> Option<Node>
If a node has a static input, return the source node.
Source§fn static_targets(
    &self,
    node: Node,
) -> Option<impl Iterator<Item = (Node, IncomingPort)>>
 
fn static_targets( &self, node: Node, ) -> Option<impl Iterator<Item = (Node, IncomingPort)>>
If a node has a static output, return the targets.
Source§fn signature(&self, node: Node) -> Option<Signature>
 
fn signature(&self, node: Node) -> Option<Signature>
Get the “signature” (incoming and outgoing types) of a node, non-Value
kind ports will be missing.
Source§fn value_types(
    &self,
    node: Node,
    dir: Direction,
) -> impl Iterator<Item = (Port, Type)>
 
fn value_types( &self, node: Node, dir: Direction, ) -> impl Iterator<Item = (Port, Type)>
Iterator over all outgoing ports that have Value type, along
with corresponding types.
Source§fn in_value_types(
    &self,
    node: Node,
) -> impl Iterator<Item = (IncomingPort, Type)>
 
fn in_value_types( &self, node: Node, ) -> impl Iterator<Item = (IncomingPort, Type)>
Iterator over all incoming ports that have Value type, along
with corresponding types.
Source§fn out_value_types(
    &self,
    node: Node,
) -> impl Iterator<Item = (OutgoingPort, Type)>
 
fn out_value_types( &self, node: Node, ) -> impl Iterator<Item = (OutgoingPort, Type)>
Iterator over all incoming ports that have Value type, along
with corresponding types.
Source§fn validate(&self, reg: &ExtensionRegistry) -> Result<(), ValidationError>
 
fn validate(&self, reg: &ExtensionRegistry) -> Result<(), ValidationError>
Check the validity of the underlying HUGR.
Source§fn validate_no_extensions(
    &self,
    reg: &ExtensionRegistry,
) -> Result<(), ValidationError>
 
fn validate_no_extensions( &self, reg: &ExtensionRegistry, ) -> Result<(), ValidationError>
Check the validity of the underlying HUGR, but don’t check consistency
of extension requirements between connected nodes or between parents and
children.
Source§impl<T> IntoEither for T
 
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
 
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts 
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
 
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts 
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pipe for Twhere
    T: ?Sized,
 
impl<T> Pipe for Twhere
    T: ?Sized,
Source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
    Self: Sized,
 
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
    Self: Sized,
Pipes by value. This is generally the method you want to use. Read more
Source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
    R: 'a,
 
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
    R: 'a,
Borrows 
self and passes that borrow into the pipe function. Read moreSource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
    R: 'a,
 
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
    R: 'a,
Mutably borrows 
self and passes that borrow into the pipe function. Read moreSource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
 
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
Source§fn pipe_borrow_mut<'a, B, R>(
    &'a mut self,
    func: impl FnOnce(&'a mut B) -> R,
) -> R
 
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
Source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
 
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
Borrows 
self, then passes self.as_ref() into the pipe function.Source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
 
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
Mutably borrows 
self, then passes self.as_mut() into the pipe
function.Source§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
 
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
Borrows 
self, then passes self.deref() into the pipe function.Source§impl<T> Tap for T
 
impl<T> Tap for T
Source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
 
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Immutable access to the 
Borrow<B> of a value. Read moreSource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
 
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
Mutable access to the 
BorrowMut<B> of a value. Read moreSource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
 
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
Immutable access to the 
AsRef<R> view of a value. Read moreSource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
 
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
Mutable access to the 
AsMut<R> view of a value. Read moreSource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
 
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Immutable access to the 
Deref::Target of a value. Read moreSource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
 
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Mutable access to the 
Deref::Target of a value. Read moreSource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
 
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
Calls 
.tap() only in debug builds, and is erased in release builds.Source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
 
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
Calls 
.tap_mut() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
 
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
Calls 
.tap_borrow() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
 
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
Calls 
.tap_borrow_mut() only in debug builds, and is erased in release
builds.Source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
 
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
Calls 
.tap_ref() only in debug builds, and is erased in release
builds.Source§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
 
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
Calls 
.tap_ref_mut() only in debug builds, and is erased in release
builds.Source§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
 
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
Calls 
.tap_deref() only in debug builds, and is erased in release
builds.