Struct SP1ContextBuilder

Source
pub struct SP1ContextBuilder<'a> { /* private fields */ }
Expand description

A builder for SP1Context.

Implementations§

Source§

impl<'a> SP1ContextBuilder<'a>

Source

pub fn new() -> Self

Create a new SP1ContextBuilder.

Prefer using SP1Context::builder.

Source

pub fn build(&mut self) -> SP1Context<'a>

Build and return the SP1Context.

Clears and resets the builder, allowing it to be reused.

Source

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.

Source

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.

Source

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.

Source

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.

Source

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.

Source

pub fn set_deferred_proof_verification(&mut self, value: bool) -> &mut Self

Set the deferred proof verification flag.

Source

pub fn stdout<W: IoWriter>(&mut self, writer: &'a mut W) -> &mut Self

Set the stdout writer.

Source

pub fn stderr<W: IoWriter>(&mut self, writer: &'a mut W) -> &mut Self

Set the stderr writer.

Trait Implementations§

Source§

impl Default for SP1ContextBuilder<'_>

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

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> 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> Downcast for T
where T: Any,

Source§

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

Convert 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>

Convert 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)

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

Convert &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> 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<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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, 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<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

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> JsonSchemaMaybe for T