mod logical_verilog;
mod rsfqlib_spice;
mod rsfqlib_verilog;
use crate::circuit_view::CircuitView;
pub use logical_verilog::LogicalVerilog;
pub use rsfqlib_spice::RsfqlibSpice;
pub use rsfqlib_verilog::RsfqlibVerilog;
pub struct BackendCircuit<'a> {
view: &'a dyn CircuitView,
}
impl<'a> BackendCircuit<'a> {
pub(crate) fn new(view: &'a dyn CircuitView) -> Self {
Self { view }
}
pub(crate) fn view(&self) -> &dyn CircuitView {
self.view
}
}
pub trait Backend {
fn generate(&self, circuit: &BackendCircuit<'_>) -> String;
}