pub fn run(self) -> Result<(SP1PublicValues, ExecutionReport)> {
        let Self { prover, elf, stdin, mut context_builder } = self;
        let context = context_builder.build();
        let (pv, _, report) = prover.execute(elf, &stdin, context)?;
        Ok((pv, report))
    }
Executes the program on the input with the built arguments.

# Details
This method will execute the program on the input with the built arguments. If the program
fails to execute, the method will return an error.

# Example
```rust,no_run
use sp1_sdk::{include_elf, Prover, ProverClient, SP1Stdin};

let elf = &[1, 2, 3];
let stdin = SP1Stdin::new();

let client = ProverClient::builder().cpu().build();
let (public_values, execution_report) = client.execute(elf, &stdin).run().unwrap();
```
crates/sdk/src/cpu/execute.rs