use quant_iron::{CircuitBuilder, MeasurementBasis, State, Subroutine};
fn main() {
let circuit = CircuitBuilder::new(3)
.h_gate(0) .cnot_gate(0, 1) .x_gates(vec![1, 2]) .add_subroutine(Subroutine::qft(vec![1, 2], 3)) .measure_gate(MeasurementBasis::Computational, vec![0, 1]) .build()
.expect("Could not build Circuit");
let state = State::new_plus(3).expect("Could not create state");
println!("Initial state:\n{:?}", state);
let new_state = circuit.execute(&state)
.expect("Could not execute circuit"); println!("New state:\n{:?}", new_state); }