pub fn compile(
circuit: &Circuit,
config: CompileConfig,
) -> Result<CompileResult, CompilerError>Expand description
Runs the configured compiler workflow over circuit.
The returned result records the optimized circuit and step-level reports for the retained output path in workflow order. A device target additionally returns its initial and final layouts. Errors are reported when a configured target, native realization, or candidate validation cannot be satisfied.
ยงExamples
use cqlib_core::circuit::{Circuit, Qubit};
use cqlib_core::compile::{CompileConfig, CompileMode, CompileTarget, compile};
use cqlib_core::compile::resource::ResourcePolicy;
let mut circuit = Circuit::new(2);
circuit.h(Qubit::new(0)).unwrap();
circuit.cx(Qubit::new(0), Qubit::new(1)).unwrap();
let result = compile(
&circuit,
CompileConfig {
mode: CompileMode::Normal,
target: CompileTarget::Logical,
resource_policy: ResourcePolicy::default(),
},
)
.unwrap();
assert_eq!(result.mode, CompileMode::Normal);
assert!(!result.steps.is_empty());
assert_eq!(result.circuit.qubits().len(), 2);