#[non_exhaustive]pub enum NodeTemplateInstanceMergeError {
Show 30 variants
DetectorBundle(DetectorBundleError),
BooleanResource(BooleanResourceError),
MembershipSelectionRequired,
MissingMembershipInput(u32),
InvalidMembership(String),
UnknownTemplate(TemplateId),
InvalidBody(BodyId),
CyclicBody(BodyId),
MppMeasurementCountMismatch {
products: usize,
measurements: usize,
},
MeasureOutputCountMismatch {
qubits: usize,
measurements: usize,
},
EmptyMpp,
EmptyPauliProduct,
UnregisteredMeasurementOutput(u32),
DuplicateMeasurementOutput(u32),
MeasurementOutputCoordinateMismatch {
measurement: u32,
registered: IVec2,
produced: IVec2,
},
OddTwoQubitTargetCount {
gate: GateType,
targets: usize,
},
RepeatedTwoQubitGateTarget {
gate: GateType,
qubit: IVec2,
},
OddDepolarize2TargetCount {
targets: usize,
},
RepeatedDepolarize2Target(IVec2),
InvalidProbability {
instruction: &'static str,
},
CoordinateOverflow(CoordinateOverflowError),
MeasurementIdOverflow,
BodyCountOverflow,
NoiseRepeatExpansion(FlattenError),
TickSegmentCountMismatch,
RepeatShapeMismatch,
RepeatCountMismatch,
BodyMergeConflict {
circuit_index: usize,
body: BodyId,
},
QubitConflict(IVec2),
ControlReferencesUnknownMeasurement(u32),
}Expand description
Why a template-backed node’s instances could not be merged into one circuit.
Multi-instance emission and Bloq::validate run
the same merge. Singleton emission stops after the same structural preflight
and translation because merging would change its temporal structure.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
DetectorBundle(DetectorBundleError)
A detector bundle use is malformed.
BooleanResource(BooleanResourceError)
Boolean analysis exceeded its configured budget.
MembershipSelectionRequired
Conditional registrations require selector inputs.
MissingMembershipInput(u32)
A required selector input is unavailable.
InvalidMembership(String)
Registration tables violate their structural contract.
UnknownTemplate(TemplateId)
An instance names an absent template.
InvalidBody(BodyId)
A circuit names an absent body.
CyclicBody(BodyId)
Circuit bodies recurse.
MppMeasurementCountMismatch
MPP products and measurement ids have different lengths.
MeasureOutputCountMismatch
Measure targets and outputs have different lengths.
EmptyMpp
An MPP operation has no products.
EmptyPauliProduct
An MPP product has no Pauli terms.
UnregisteredMeasurementOutput(u32)
An operation produces an unregistered measurement.
DuplicateMeasurementOutput(u32)
Several operations produce the same measurement id.
MeasurementOutputCoordinateMismatch
A measurement registry coordinate disagrees with its operation.
OddTwoQubitTargetCount
A two-qubit gate has an odd target count.
RepeatedTwoQubitGateTarget
A two-qubit gate pair repeats one endpoint.
OddDepolarize2TargetCount
A two-qubit noise operation has an odd target count.
RepeatedDepolarize2Target(IVec2)
A two-qubit noise pair repeats one endpoint.
InvalidProbability
A probability is non-finite or outside [0, 1].
CoordinateOverflow(CoordinateOverflowError)
Coordinate translation overflowed.
MeasurementIdOverflow
Merged measurement ids exhausted u32.
BodyCountOverflow
Circuit-body storage or the merged body-id space exhausted capacity.
NoiseRepeatExpansion(FlattenError)
Repeat expansion for idle noise failed.
TickSegmentCountMismatch
Instance circuits have different tick counts.
RepeatShapeMismatch
A merged segment mixes repeat and non-repeat shapes.
RepeatCountMismatch
Aligned repeats have different counts.
BodyMergeConflict
One body participates in several merge tuples.
QubitConflict(IVec2)
Instance circuits use one qubit incompatibly in a segment.
ControlReferencesUnknownMeasurement(u32)
Conditional feedforward reads a measurement too early.
Implementations§
Source§impl NodeTemplateInstanceMergeError
impl NodeTemplateInstanceMergeError
Sourcepub fn is_resource_limited(&self) -> bool
pub fn is_resource_limited(&self) -> bool
Whether checking or materializing the instances exhausted a resource allowance, rather than proving their circuit structure invalid.
Trait Implementations§
Source§impl Clone for NodeTemplateInstanceMergeError
impl Clone for NodeTemplateInstanceMergeError
Source§fn clone(&self) -> NodeTemplateInstanceMergeError
fn clone(&self) -> NodeTemplateInstanceMergeError
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Eq for NodeTemplateInstanceMergeError
Source§impl Error for NodeTemplateInstanceMergeError
impl Error for NodeTemplateInstanceMergeError
Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()
Source§impl From<BooleanResourceError> for NodeTemplateInstanceMergeError
impl From<BooleanResourceError> for NodeTemplateInstanceMergeError
Source§fn from(source: BooleanResourceError) -> Self
fn from(source: BooleanResourceError) -> Self
Source§impl From<CoordinateOverflowError> for NodeTemplateInstanceMergeError
impl From<CoordinateOverflowError> for NodeTemplateInstanceMergeError
Source§fn from(source: CoordinateOverflowError) -> Self
fn from(source: CoordinateOverflowError) -> Self
Source§impl From<DetectorBundleError> for NodeTemplateInstanceMergeError
impl From<DetectorBundleError> for NodeTemplateInstanceMergeError
Source§fn from(source: DetectorBundleError) -> Self
fn from(source: DetectorBundleError) -> Self
Source§impl From<FlattenError> for NodeTemplateInstanceMergeError
impl From<FlattenError> for NodeTemplateInstanceMergeError
Source§fn from(source: FlattenError) -> Self
fn from(source: FlattenError) -> Self
Source§impl From<NodeTemplateInstanceMergeError> for EditError
impl From<NodeTemplateInstanceMergeError> for EditError
Source§fn from(source: NodeTemplateInstanceMergeError) -> Self
fn from(source: NodeTemplateInstanceMergeError) -> Self
Source§impl From<NodeTemplateInstanceMergeError> for MembershipPinError
impl From<NodeTemplateInstanceMergeError> for MembershipPinError
Source§fn from(source: NodeTemplateInstanceMergeError) -> Self
fn from(source: NodeTemplateInstanceMergeError) -> Self
impl StructuralPartialEq for NodeTemplateInstanceMergeError
Auto Trait Implementations§
impl Freeze for NodeTemplateInstanceMergeError
impl RefUnwindSafe for NodeTemplateInstanceMergeError
impl Send for NodeTemplateInstanceMergeError
impl Sync for NodeTemplateInstanceMergeError
impl Unpin for NodeTemplateInstanceMergeError
impl UnsafeUnpin for NodeTemplateInstanceMergeError
impl UnwindSafe for NodeTemplateInstanceMergeError
Blanket Implementations§
§impl<T, BorrowedSelf> BitwiseMutViaBorrow<BorrowedSelf> for T
impl<T, BorrowedSelf> BitwiseMutViaBorrow<BorrowedSelf> for T
fn assign_index(&mut self, index: usize, to: bool)
fn negate_index(&mut self, index: usize)
fn clear_bits(&mut self)
fn assign_random(
&mut self,
bit_count: usize,
random_number_generator: &mut impl RngExt,
)where
BorrowedSelf: BitLength,
§impl<Bits, Other, BorrowedSelf, BorrowedOther> BitwisePairMutViaBorrow<Other, BorrowedSelf, BorrowedOther> for Bits
impl<Bits, Other, BorrowedSelf, BorrowedOther> BitwisePairMutViaBorrow<Other, BorrowedSelf, BorrowedOther> for Bits
fn assign(&mut self, other: &Other)
fn bitxor_assign(&mut self, other: &Other)
fn bitand_assign(&mut self, other: &Other)
fn bitor_assign(&mut self, other: &Other)
§impl<T, Other, BorrowedSelf, BorrowedOther> BitwisePairViaBorrow<Other, BorrowedSelf, BorrowedOther> for T
impl<T, Other, BorrowedSelf, BorrowedOther> BitwisePairViaBorrow<Other, BorrowedSelf, BorrowedOther> for T
§impl<T, BorrowedSelf> BitwiseViaBorrow<BorrowedSelf> for T
impl<T, BorrowedSelf> BitwiseViaBorrow<BorrowedSelf> for T
fn index(&self, index: usize) -> bool
fn weight(&self) -> usize
fn parity(&self) -> bool
fn is_zero(&self) -> bool
fn is_unit(&self, index: usize) -> bool
fn support<'a>(&'a self) -> impl SortedIteratorwhere
BorrowedSelf: 'a,
fn max_support(&self) -> Option<usize>
fn min_support(&self) -> Option<usize>
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.