Struct FatNode

Source
pub struct FatNode<'hugr, OT = OpType, H = Hugr, N = Node>
where H: ?Sized,
{ /* private fields */ }
Expand description

A Fat Node is a Node along with a reference to the HugrView whence it originates. It carries a type OT, the OpType of that node. OT may be general, i.e. exactly OpType, or specifec, e.g. FuncDefn.

We provide a [Deref<Target=OT>] impl, so it can be used in place of OT.

We provide PartialEq, Eq, PartialOrd, Ord, Hash, so that this type can be used in containers. Note that these implementations use only the stored node, so will silently malfunction if used with FatNodes from different base Hugrs. Note that Node has this same behaviour.

Implementations§

Source§

impl<'hugr, OT, H: HugrView + ?Sized> FatNode<'hugr, OT, H, H::Node>
where for<'a> &'a OpType: TryInto<&'a OT>,

Source

pub fn new(hugr: &'hugr H, node: H::Node, ot: &OT) -> Self

Create a FatNode from a HugrView and a Node.

Panics if the node is not valid in the Hugr or if it’s get_optype is not an OT.

Note that while we do check the type of the node’s get_optype, we do not verify that it is actually equal to ot.

Source

pub fn try_new(hugr: &'hugr H, node: H::Node) -> Option<Self>

Tries to create a FatNode from a HugrView and a node (typically a Node).

If the node is invalid, or if its get_optype is not OT, returns None.

Source

pub fn generalise(self) -> FatNode<'hugr, OpType, H, H::Node>

Create a general FatNode from a specific one.

Source§

impl<'hugr, OT, H, N: HugrNode> FatNode<'hugr, OT, H, N>

Source

pub fn node(&self) -> N

Gets the Node of the FatNode.

Source

pub fn hugr(&self) -> &'hugr H

Gets the HugrView of the FatNode.

Source§

impl<'hugr, H: HugrView + ?Sized> FatNode<'hugr, OpType, H, H::Node>

Source

pub fn new_optype(hugr: &'hugr H, node: H::Node) -> Self

Creates a new general FatNode from a HugrView and a Node.

Panics if the node is not valid in the Hugr.

Source

pub fn try_into_ot<OT>(&self) -> Option<FatNode<'hugr, OT, H, H::Node>>
where for<'a> &'a OpType: TryInto<&'a OT>,

Tries to downcast a general FatNode into a specific OT.

Source

pub fn into_ot<OT>(self, ot: &OT) -> FatNode<'hugr, OT, H, H::Node>
where for<'a> &'a OpType: TryInto<&'a OT>,

Creates a specific FatNode from a general FatNode.

Panics if the node is not valid in the Hugr or if its get_optype is not an OT.

Note that while we do check the type of the node’s get_optype, we do not verify that it is actually equal to ot.

Source§

impl<'hugr, OT, H: HugrView + ?Sized> FatNode<'hugr, OT, H, H::Node>

Source

pub fn single_linked_output( &self, port: IncomingPort, ) -> Option<(FatNode<'hugr, OpType, H, H::Node>, OutgoingPort)>

If there is exactly one OutgoingPort connected to this IncomingPort, return it and its node.

Source

pub fn out_value_types( &self, ) -> impl Iterator<Item = (OutgoingPort, Type)> + 'hugr + use<'hugr, OT, H>

Iterator over all incoming ports that have Value type, along with corresponding types.

Source

pub fn in_value_types( &self, ) -> impl Iterator<Item = (IncomingPort, Type)> + 'hugr + use<'hugr, OT, H>

Iterator over all incoming ports that have Value type, along with corresponding types.

Source

pub fn children( &self, ) -> impl Iterator<Item = FatNode<'hugr, OpType, H, H::Node>> + 'hugr + use<'hugr, OT, H>

Return iterator over the direct children of node.

Source

pub fn get_io( &self, ) -> Option<(FatNode<'hugr, Input, H, H::Node>, FatNode<'hugr, Output, H, H::Node>)>

Get the input and output child nodes of a dataflow parent. If the node isn’t a dataflow parent, then return None

Source

pub fn node_outputs( &self, ) -> impl Iterator<Item = OutgoingPort> + 'hugr + use<'hugr, OT, H>

Iterator over output ports of node.

Source

pub fn output_neighbours( &self, ) -> impl Iterator<Item = FatNode<'hugr, OpType, H, H::Node>> + 'hugr + use<'hugr, OT, H>

Iterates over the output neighbours of the node.

Source

pub fn as_entrypoint(&self) -> Rerooted<&H>
where H: Sized,

Returns a view of the internal HugrView with this Node as entrypoint.

Source§

impl<'hugr, H: HugrView> FatNode<'hugr, CFG, H, H::Node>

Source

pub fn get_entry_exit( &self, ) -> (FatNode<'hugr, DataflowBlock, H, H::Node>, FatNode<'hugr, ExitBlock, H, H::Node>)

Returns the entry and exit nodes of a CFG.

These are guaranteed to exist the Hugr is valid. Panics if they do not exist.

Trait Implementations§

Source§

impl<OT, H: HugrView + ?Sized> AsRef<OT> for FatNode<'_, OT, H, H::Node>
where for<'a> &'a OpType: TryInto<&'a OT>,

Source§

fn as_ref(&self) -> &OT

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl<OT, H> Clone for FatNode<'_, OT, H>

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<'hugr, OT: Debug, H, N: Debug> Debug for FatNode<'hugr, OT, H, N>
where H: ?Sized + Debug,

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<OT: Display, H: HugrView + ?Sized> Display for FatNode<'_, OT, H, H::Node>
where for<'a> &'a OpType: TryInto<&'a OT>,

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<OT, H, N: Hash> Hash for FatNode<'_, OT, H, N>

Source§

fn hash<HA: Hasher>(&self, state: &mut HA)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl<OT, H> NodeIndex for &FatNode<'_, OT, H>

Source§

fn index(self) -> usize

Returns the index of the node.
Source§

impl<OT, H, N: NodeIndex> NodeIndex for FatNode<'_, OT, H, N>

Source§

fn index(self) -> usize

Returns the index of the node.
Source§

impl<OT, H, N: Ord> Ord for FatNode<'_, OT, H, N>

Source§

fn cmp(&self, other: &Self) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · Source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · Source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · Source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized,

Restrict a value to a certain interval. Read more
Source§

impl<OT, H> PartialEq<FatNode<'_, OT, H>> for Node

Source§

fn eq(&self, other: &FatNode<'_, OT, H, Node>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<N: PartialEq, OT1, OT2, H1, H2> PartialEq<FatNode<'_, OT1, H1, N>> for FatNode<'_, OT2, H2, N>

Source§

fn eq(&self, other: &FatNode<'_, OT1, H1, N>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<OT, H> PartialEq<Node> for FatNode<'_, OT, H, Node>

Source§

fn eq(&self, other: &Node) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<OT, H> PartialOrd<FatNode<'_, OT, H>> for Node

Source§

fn partial_cmp(&self, other: &FatNode<'_, OT, H>) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · Source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · Source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · Source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · Source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

impl<N: PartialOrd, OT1, OT2, H1, H2> PartialOrd<FatNode<'_, OT1, H1, N>> for FatNode<'_, OT2, H2, N>

Source§

fn partial_cmp(&self, other: &FatNode<'_, OT1, H1, N>) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · Source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · Source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · Source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · Source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

impl<OT, H> PartialOrd<Node> for FatNode<'_, OT, H>

Source§

fn partial_cmp(&self, other: &Node) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · Source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · Source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · Source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · Source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

impl<OT, H: HugrView + ?Sized> Deref for FatNode<'_, OT, H, H::Node>
where for<'a> &'a OpType: TryInto<&'a OT>,

Source§

type Target = OT

The resulting type after dereferencing.
Source§

fn deref(&self) -> &Self::Target

Dereferences the value.
Source§

impl<OT, H> Copy for FatNode<'_, OT, H>

Source§

impl<N: Eq, OT, H> Eq for FatNode<'_, OT, H, N>

Auto Trait Implementations§

§

impl<'hugr, OT, H, N> Freeze for FatNode<'hugr, OT, H, N>
where N: Freeze, H: ?Sized,

§

impl<'hugr, OT, H, N> RefUnwindSafe for FatNode<'hugr, OT, H, N>

§

impl<'hugr, OT, H, N> Send for FatNode<'hugr, OT, H, N>
where N: Send, H: Sync + ?Sized, OT: Send,

§

impl<'hugr, OT, H, N> Sync for FatNode<'hugr, OT, H, N>
where N: Sync, H: Sync + ?Sized, OT: Sync,

§

impl<'hugr, OT, H, N> Unpin for FatNode<'hugr, OT, H, N>
where N: Unpin, OT: Unpin, H: ?Sized,

§

impl<'hugr, OT, H, N> UnwindSafe for FatNode<'hugr, OT, H, N>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<Q, K> Comparable<K> for Q
where Q: Ord + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn compare(&self, key: &K) -> Ordering

Compare self to key and return their ordering.
Source§

impl<T> Conv for T

Source§

fn conv<T>(self) -> T
where Self: Into<T>,

Converts self into T using Into<T>. Read more
Source§

impl<T> Downcast for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Converts Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.
Source§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Converts Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
Source§

fn as_any(&self) -> &(dyn Any + 'static)

Converts &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)

Converts &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> DowncastSend for T
where T: Any + Send,

Source§

fn into_any_send(self: Box<T>) -> Box<dyn Any + Send>

Converts Box<Trait> (where Trait: DowncastSend) to Box<dyn Any + Send>, which can then be downcast into Box<ConcreteType> where ConcreteType implements Trait.
Source§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

Source§

fn into_any_sync(self: Box<T>) -> Box<dyn Any + Sync + Send>

Converts Box<Trait> (where Trait: DowncastSync) to Box<dyn Any + Send + Sync>, which can then be downcast into Box<ConcreteType> where ConcreteType implements Trait.
Source§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Converts Arc<Trait> (where Trait: DowncastSync) to Arc<Any>, which can then be downcast into Arc<ConcreteType> where ConcreteType implements Trait.
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T> FmtForward for T

Source§

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,

Causes self to use its Display implementation when Debug-formatted.
Source§

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,

Causes self to use its LowerHex implementation when Debug-formatted.
Source§

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,

Causes self to use its Pointer implementation when Debug-formatted.
Source§

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,

Causes self to use its UpperHex implementation when Debug-formatted.
Source§

fn fmt_list(self) -> FmtList<Self>
where &'a Self: for<'a> IntoIterator,

Formats each item in a sequence. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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 more
Source§

impl<N> NodeHandle<N> for N
where N: HugrNode,

Source§

const TAG: OpTag = OpTag::Any

The most specific operation tag associated with the handle.
Source§

fn node(&self) -> N

Index of underlying node.
Source§

fn tag(&self) -> OpTag

Operation tag for the handle.
Source§

fn try_cast<T>(&self) -> Option<T>
where T: NodeHandle<N> + From<N>,

Cast the handle to a different more general tag.
Source§

fn can_hold(tag: OpTag) -> bool

Checks whether the handle can hold an operation with the given tag.
Source§

impl<T> Pipe for T
where T: ?Sized,

Source§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where 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) -> R
where R: 'a,

Borrows self and passes that borrow into the pipe function. Read more
Source§

fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> R
where R: 'a,

Mutably borrows self and passes that borrow into the pipe function. Read more
Source§

fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
where Self: Borrow<B>, B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
Source§

fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
where Self: BorrowMut<B>, B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe function. Read more
Source§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where Self: AsRef<U>, U: 'a + ?Sized, R: 'a,

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
where Self: AsMut<U>, U: 'a + ?Sized, R: 'a,

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
where Self: Deref<Target = T>, T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
Source§

fn pipe_deref_mut<'a, T, R>( &'a mut self, func: impl FnOnce(&'a mut T) -> R, ) -> R
where Self: DerefMut<Target = T> + Deref, T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe function.
Source§

impl<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
Source§

impl<T> Tap for T

Source§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
Source§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
Source§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
Source§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
Source§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
Source§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
Source§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
Source§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Mutable access to the Deref::Target of a value. Read more
Source§

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

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
where Self: Borrow<B>, B: ?Sized,

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
where Self: BorrowMut<B>, B: ?Sized,

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
where Self: AsRef<R>, R: ?Sized,

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
where Self: AsMut<R>, R: ?Sized,

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
where Self: Deref<Target = T>, T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release builds.
Source§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release builds.
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToSmolStr for T
where T: Display + ?Sized,

Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T> TryConv for T

Source§

fn try_conv<T>(self) -> Result<T, Self::Error>
where Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T> TryHash for T
where T: Hash,

Source§

fn try_hash(&self, st: &mut dyn Hasher) -> bool

Hashes the value, if possible; else return false without mutating the Hasher. This relates with CustomConst::equal_consts just like Hash with Eq: Read more
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<'a, S, T> View<'a, &S> for T
where T: View<'a, S>, S: Copy,

Source§

fn view(module: &'a Module<'a>, id: &S) -> Option<T>

Attempt to interpret a subpart of a module as this type.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> HugrNode for T
where T: Copy + Ord + Debug + Display + Hash,

Source§

impl<N> NodeTrait for N
where N: Copy + Ord + Hash,

Source§

impl<T> RuleType for T
where T: Copy + Debug + Eq + Hash + Ord,