Struct snarkvm_synthesizer::program::Function
source · pub struct Function<N: Network> { /* private fields */ }Implementations§
source§impl<N: Network> Function<N>
impl<N: Network> Function<N>
sourcepub fn input_types(&self) -> Vec<ValueType<N>>
pub fn input_types(&self) -> Vec<ValueType<N>>
Returns the function input types.
sourcepub fn instructions(&self) -> &[Instruction<N>]
pub fn instructions(&self) -> &[Instruction<N>]
Returns the function instructions.
sourcepub fn output_types(&self) -> Vec<ValueType<N>>
pub fn output_types(&self) -> Vec<ValueType<N>>
Returns the function output types.
sourcepub const fn finalize(&self) -> Option<&(FinalizeCommand<N>, Finalize<N>)>
pub const fn finalize(&self) -> Option<&(FinalizeCommand<N>, Finalize<N>)>
Returns the function finalize logic.
sourcepub fn finalize_command(&self) -> Option<&FinalizeCommand<N>>
pub fn finalize_command(&self) -> Option<&FinalizeCommand<N>>
Returns the function finalize command.
sourcepub fn finalize_logic(&self) -> Option<&Finalize<N>>
pub fn finalize_logic(&self) -> Option<&Finalize<N>>
Returns the function finalize logic.
source§impl<N: Network> Function<N>
impl<N: Network> Function<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 function.
Errors
This method will halt if there are output statements already. This method will halt if the maximum number of instructions has been reached. This method will halt if a finalize command has been added.
Trait Implementations§
source§impl<N: PartialEq + Network> PartialEq<Function<N>> for Function<N>
impl<N: PartialEq + Network> PartialEq<Function<N>> for Function<N>
impl<N: Eq + Network> Eq for Function<N>
impl<N: Network> StructuralEq for Function<N>
impl<N: Network> StructuralPartialEq for Function<N>
Auto Trait Implementations§
impl<N> RefUnwindSafe for Function<N>where N: RefUnwindSafe, <N as Environment>::Field: RefUnwindSafe, <N as Environment>::Projective: RefUnwindSafe, <N as Environment>::Scalar: RefUnwindSafe,
impl<N> Send for Function<N>
impl<N> Sync for Function<N>
impl<N> Unpin for Function<N>where N: Unpin, <N as Environment>::Field: Unpin, <N as Environment>::Projective: Unpin, <N as Environment>::Scalar: Unpin,
impl<N> UnwindSafe for Function<N>where N: UnwindSafe, <N as Environment>::Field: 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
Mutably borrows from an owned value. Read more
source§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more