Skip to main content

compile

Function compile 

Source
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);