Constant HOST_MAIN_DEV_TEMPLATE
Source const HOST_MAIN_DEV_TEMPLATE: &str = "use airbender_host::{\n Inputs, Program, Prover, Result, Runner, SecurityLevel, VerificationRequest, Verifier,\n};\nuse std::path::PathBuf;\n\nfn main() -> Result<()> {\n let prove = std::env::args().skip(1).any(|arg| arg == \"--prove\");\n // We assume that the guest program is located in `../guest/dist/app`,\n // which is the default behavior of `cargo airbender build`.\n let dist_dir = PathBuf::from(env!(\"CARGO_MANIFEST_DIR\")).join(\"../guest/dist/app\");\n let program = Program::load(&dist_dir)?;\n\n let mut inputs = Inputs::new();\n inputs.push(&41u32)?;\n\n let runner = program.transpiler_runner().build()?;\n let execution = runner.run(inputs.words())?;\n let exec_output = execution.receipt.output[0];\n println!(\n \"Execution finished: cycles={}, reached_end={}, output={}\",\n execution.cycles_executed, execution.reached_end, exec_output\n );\n\n if !prove {\n println!(\"Skipping proof generation (pass `--prove` to generate and verify proof).\");\n return Ok(());\n }\n\n let security = SecurityLevel::default();\n let prover = program.dev_prover().with_security(security).build()?;\n let prove_result = prover.prove(inputs.words())?;\n let proof_output = prove_result.receipt.output[0];\n println!(\n \"Proof generated: cycles={}, output={}\",\n prove_result.cycles, proof_output\n );\n assert_eq!(\n exec_output, proof_output,\n \"execution and proof output mismatch\"\n );\n\n let expected_output = 42u32;\n let verifier = program.dev_verifier().build()?;\n let vk = verifier.generate_vk(security)?;\n verifier.verify(\n &prove_result.proof,\n &vk,\n VerificationRequest::dev(inputs.words(), &expected_output),\n )?;\n println!(\"Proof verified.\");\n\n Ok(())\n}\n";