pub struct MultiEmitterBackend {
pub target: Target,
pub general: Box<dyn TargetEmitter>,
pub specialist: Option<Box<dyn TargetEmitter>>,
pub quorum_policy: QuorumPolicy,
}Expand description
Multi-emitter backend wrapper. Composes a general emitter
(mandatory) + an optional specialist under a QuorumPolicy.
Implements Backend so it slots into the existing dispatch
without touching TranspileSession.
Fields§
§target: TargetSingle target this multi-emitter backend serves
(e.g., Target::Ptx).
general: Box<dyn TargetEmitter>Mandatory general emitter. Must handle any contract-conforming input as a fallback.
specialist: Option<Box<dyn TargetEmitter>>Optional specialist emitter. Returns None from try_emit
when its shape filter doesn’t match the input.
quorum_policy: QuorumPolicyHow to combine outputs when both emitters fire.
Implementations§
Source§impl MultiEmitterBackend
impl MultiEmitterBackend
pub fn new_single(target: Target, general: Box<dyn TargetEmitter>) -> Self
pub fn new_with_specialist( target: Target, general: Box<dyn TargetEmitter>, specialist: Box<dyn TargetEmitter>, quorum_policy: QuorumPolicy, ) -> Self
Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for MultiEmitterBackend
impl !UnwindSafe for MultiEmitterBackend
impl Freeze for MultiEmitterBackend
impl Send for MultiEmitterBackend
impl Sync for MultiEmitterBackend
impl Unpin for MultiEmitterBackend
impl UnsafeUnpin for MultiEmitterBackend
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more