TailLoop¶
- class hugr.ops.TailLoop(just_inputs: list[Type], rest: list[Type], _just_outputs: list[Type] | None = None)[source]¶
Bases:
DfParentOp,DataflowOpTail controlled loop operation, child dataflow graph iterates while it outputs the first variant of a sum type.
Methods
Inner signature of the child dataflow graph.
Name of the operation.
The external signature of this operation.
Get the kind of the given port.
Get the type of the given dataflow port from the signature of the operation.
Get the extensions used by this operation, optionally resolving unresolved types and operations.
Attributes
Types that are only outputs of the child graph.
The number of output ports for this operation.
Types that are only inputs of the child graph.
Types that are appended to both inputs and outputs of the graph.
- inner_signature() FunctionType[source]¶
Inner signature of the child dataflow graph.
- property just_outputs: list[Type]¶
Types that are only outputs of the child graph.
- Raises:
IncompleteOp – If the outputs have not been set.
- property num_out: int¶
The number of output ports for this operation.
Example
>>> op = Const(val.TRUE) >>> op.num_out 1
- outer_signature() FunctionType[source]¶
The external signature of this operation. Defines the valid external connectivity of the node the operation belongs to.
- Raises:
IncompleteOp – If the operation’s inputs and outputs have not been set.
- port_kind(port: InPort | OutPort) ValueKind | ConstKind | FunctionKind | CFKind | OrderKind¶
Get the kind of the given port.
Example
>>> op = Const(val.TRUE) >>> op.port_kind(OutPort(Node(0), 0)) ConstKind(Bool)
- port_type(port: InPort | OutPort) Type¶
Get the type of the given dataflow port from the signature of the operation.
Example
>>> op = Input([tys.Bool]) >>> op.port_type(OutPort(Node(0), 0)) Bool
- used_extensions(resolve_from: ExtensionRegistry | None = None) ExtensionResolutionResult¶
Get the extensions used by this operation, optionally resolving unresolved types and operations.
- Parameters:
resolve_from – Optional extension registry to resolve against. If None, opaque types and Custom ops will not be resolved.
- Returns:
The result containing used and unresolved extensions.