pub struct SP1ContextBuilder<'a> { /* private fields */ }Expand description
A builder for SP1Context.
Implementations§
Source§impl<'a> SP1ContextBuilder<'a>
impl<'a> SP1ContextBuilder<'a>
Sourcepub fn new() -> Self
pub fn new() -> Self
Create a new SP1ContextBuilder.
Prefer using SP1Context::builder.
Sourcepub fn build(&mut self) -> SP1Context<'a>
pub fn build(&mut self) -> SP1Context<'a>
Build and return the SP1Context.
Clears and resets the builder, allowing it to be reused.
Sourcepub fn hook(
&mut self,
fd: u32,
f: impl FnMut(HookEnv<'_, '_>, &[u8]) -> Vec<Vec<u8>> + Send + Sync + 'a,
) -> &mut Self
pub fn hook( &mut self, fd: u32, f: impl FnMut(HookEnv<'_, '_>, &[u8]) -> Vec<Vec<u8>> + Send + Sync + 'a, ) -> &mut Self
Add a runtime Hook into the context.
Hooks may be invoked from within SP1 by writing to the specified file descriptor fd
with [sp1_zkvm::io::write], returning a list of arbitrary data that may be read
with successive calls to [sp1_zkvm::io::read].
§Panics
Panics if fd <= LOWEST_ALLOWED_FD.
Sourcepub fn without_default_hooks(&mut self) -> &mut Self
pub fn without_default_hooks(&mut self) -> &mut Self
Avoid registering the default hooks in the runtime.
It is not necessary to call this to override hooks — instead, simply
register a hook with the same value of fd by calling Self::hook.
Sourcepub fn calculate_gas(&mut self, value: bool) -> &mut Self
pub fn calculate_gas(&mut self, value: bool) -> &mut Self
Whether gas should be calculated while executing. Defaults to true.
Determines whether the gas field in the ExecutionReport is None or Some.
During proving, gas is not calculated, so this option has no effect.
Disabling gas calculation will likely speed up execution.
Sourcepub fn subproof_verifier(
&mut self,
subproof_verifier: &'a dyn SubproofVerifier,
) -> &mut Self
pub fn subproof_verifier( &mut self, subproof_verifier: &'a dyn SubproofVerifier, ) -> &mut Self
Add a subproof verifier.
The verifier is used to sanity check verify_sp1_proof during runtime.
Sourcepub fn max_cycles(&mut self, max_cycles: u64) -> &mut Self
pub fn max_cycles(&mut self, max_cycles: u64) -> &mut Self
Set the maximum number of cpu cycles to use for execution.
report.total_instruction_count() will be less than or equal to max_cycles.
Sourcepub fn set_deferred_proof_verification(&mut self, value: bool) -> &mut Self
pub fn set_deferred_proof_verification(&mut self, value: bool) -> &mut Self
Set the deferred proof verification flag.
Trait Implementations§
Auto Trait Implementations§
impl<'a> Freeze for SP1ContextBuilder<'a>
impl<'a> !RefUnwindSafe for SP1ContextBuilder<'a>
impl<'a> Send for SP1ContextBuilder<'a>
impl<'a> !Sync for SP1ContextBuilder<'a>
impl<'a> Unpin for SP1ContextBuilder<'a>
impl<'a> !UnwindSafe for SP1ContextBuilder<'a>
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> 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>
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>
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)
&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)
&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> 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 more