pub struct ClosureCore<N: Network> { /* private fields */ }Implementations§
Source§impl<N: Network> ClosureCore<N>
impl<N: Network> ClosureCore<N>
Sourcepub fn new(name: Identifier<N>) -> Self
pub fn new(name: Identifier<N>) -> Self
Initializes a new closure with the given name.
Sourcepub const fn name(&self) -> &Identifier<N>
pub const fn name(&self) -> &Identifier<N>
Returns the name of the closure.
Sourcepub fn instructions(&self) -> &[Instruction<N>]
pub fn instructions(&self) -> &[Instruction<N>]
Returns the closure instructions.
Sourcepub fn output_types(&self) -> Vec<RegisterType<N>>
pub fn output_types(&self) -> Vec<RegisterType<N>>
Returns the closure output types.
Sourcepub fn contains_external_struct(&self) -> bool
pub fn contains_external_struct(&self) -> bool
Returns whether the closure refers to an external struct.
Sourcepub fn contains_string_type(&self) -> bool
pub fn contains_string_type(&self) -> bool
Returns true if the closure instructions contain a string type.
Note that input and output types don’t have to be checked if we are sure the broader function doesn’t contain a string type.
Sourcepub fn contains_identifier_type(&self) -> Result<bool>
pub fn contains_identifier_type(&self) -> Result<bool>
Returns true if the closure contains an identifier type in its inputs, outputs, or instructions.
Sourcepub fn exceeds_max_array_size(&self, max_array_size: u32) -> bool
pub fn exceeds_max_array_size(&self, max_array_size: u32) -> bool
Returns true if the closure contains an array type with a size that exceeds the given maximum.
Source§impl<N: Network> ClosureCore<N>
impl<N: Network> ClosureCore<N>
Sourcepub fn add_instruction(&mut self, instruction: Instruction<N>) -> Result<()>
pub fn add_instruction(&mut self, instruction: Instruction<N>) -> Result<()>
Adds the given instruction to the closure.
§Errors
This method will halt if there are output statements already. This method will halt if the maximum number of instructions has been reached.
Trait Implementations§
Source§impl<N: Clone + Network> Clone for ClosureCore<N>
impl<N: Clone + Network> Clone for ClosureCore<N>
Source§fn clone(&self) -> ClosureCore<N>
fn clone(&self) -> ClosureCore<N>
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl<N: Network> Debug for ClosureCore<N>
impl<N: Network> Debug for ClosureCore<N>
Source§impl<N: Network> Display for ClosureCore<N>
impl<N: Network> Display for ClosureCore<N>
Source§impl<N: Network> FromBytes for ClosureCore<N>
impl<N: Network> FromBytes for ClosureCore<N>
Source§fn from_bytes_le(bytes: &[u8]) -> Result<Self, Error>where
Self: Sized,
fn from_bytes_le(bytes: &[u8]) -> Result<Self, Error>where
Self: Sized,
Self from a byte array in little-endian order.Source§fn from_bytes_le_unchecked(bytes: &[u8]) -> Result<Self, Error>where
Self: Sized,
fn from_bytes_le_unchecked(bytes: &[u8]) -> Result<Self, Error>where
Self: Sized,
Self::from_bytes_le but avoids costly checks.
This shall only be called when deserializing from a trusted source, such as local storage. Read moreSource§fn read_le_unchecked<R>(reader: R) -> Result<Self, Error>
fn read_le_unchecked<R>(reader: R) -> Result<Self, Error>
Self::read_le but avoids costly checks.
This shall only be called when deserializing from a trusted source, such as local storage. Read moreSource§impl<N: Network> FromStr for ClosureCore<N>
impl<N: Network> FromStr for ClosureCore<N>
Source§impl<N: Network> Parser for ClosureCore<N>
impl<N: Network> Parser for ClosureCore<N>
Source§fn parse(string: &str) -> ParserResult<'_, Self>
fn parse(string: &str) -> ParserResult<'_, Self>
Parses a string into a closure.
Source§impl<N: Network> ToBytes for ClosureCore<N>
impl<N: Network> ToBytes for ClosureCore<N>
Source§impl<N: Network> TypeName for ClosureCore<N>
impl<N: Network> TypeName for ClosureCore<N>
impl<N: Eq + Network> Eq for ClosureCore<N>
impl<N: Network> StructuralPartialEq for ClosureCore<N>
Auto Trait Implementations§
impl<N> Freeze for ClosureCore<N>
impl<N> RefUnwindSafe for ClosureCore<N>where
<N as Environment>::Field: RefUnwindSafe,
N: RefUnwindSafe,
<N as Environment>::Projective: RefUnwindSafe,
<N as Environment>::Scalar: RefUnwindSafe,
impl<N> Send for ClosureCore<N>
impl<N> Sync for ClosureCore<N>
impl<N> Unpin for ClosureCore<N>where
<N as Environment>::Field: Unpin,
N: Unpin,
<N as Environment>::Projective: Unpin,
<N as Environment>::Scalar: Unpin,
impl<N> UnsafeUnpin for ClosureCore<N>
impl<N> UnwindSafe for ClosureCore<N>where
<N as Environment>::Field: UnwindSafe,
N: UnwindSafe,
<N as Environment>::Projective: UnwindSafe,
<N as Environment>::Scalar: 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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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>
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>
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> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> ToStringFallible for Twhere
T: Display,
impl<T> ToStringFallible for Twhere
T: Display,
Source§fn try_to_string(&self) -> Result<String, TryReserveError>
fn try_to_string(&self) -> Result<String, TryReserveError>
ToString::to_string, but without panic on OOM.