#![warn(missing_docs)]
mod ast;
mod loader;
mod parser;
mod quirk;
mod render;
pub use ast::{
BackendEscapes, BraceSide, Circuit, Control, EscapeBlock, Group, Layout, MeasurementShape,
NoteSide, Operation, OperationKind, Orientation, ParityBasis, Shape, Span, Style, Wire,
WireKind,
};
pub use loader::{LoadError, LoadedSource, load_source};
pub use parser::{Diagnostic, parse};
pub use quirk::{QuirkImportError, from_quirk_url};
pub use render::{Target, render};
pub const VERSION: &str = env!("CARGO_PKG_VERSION");
pub fn compile(source: &str, target: Target) -> Result<String, Diagnostic> {
parse(source).map(|circuit| render(&circuit, target))
}