pub enum StimEmissionError {
Show 20 variants
InvalidProgram(BloqValidationError),
DetectorBundle(DetectorBundleError),
UnknownInstanceMeasurement(InstanceMeasurement),
NodeLoopStateUnsupported(LoopStateId),
UnsupportedGate(GateType),
UnsupportedNode(&'static str),
AlignMomentsWithNoise,
AlignMomentsWithSegments,
AlignMomentsWithEmptyMetadata,
MomentAlignment(MomentAlignmentError),
MalformedGraph(&'static str),
InstanceMerge(NodeTemplateInstanceMergeError),
Flatten(FlattenError),
InvalidNoiseProbability,
IndexOutOfRange {
space: &'static str,
index: usize,
},
QubitIndexOutOfRange {
index: usize,
max: u32,
},
CoordinateOverflow(CoordinateOverflowError),
Circuit(CircuitError),
ClassicalResolution(ResolveError),
CyclicGraph(CycleDetected),
}Expand description
Reason the static Stim backend could not emit a program.
Variants§
InvalidProgram(BloqValidationError)
The input program failed Bloq IR well-formedness validation.
DetectorBundle(DetectorBundleError)
A shared detector use has an invalid bundle or owner binding.
UnknownInstanceMeasurement(InstanceMeasurement)
A node annotation names a measurement outside the prepared owner registry.
NodeLoopStateUnsupported(LoopStateId)
Node annotations have no instance-local loop-state frame.
UnsupportedGate(GateType)
A gate with no Stim spelling on the static (Clifford) path, e.g. a
non-Clifford T.
UnsupportedNode(&'static str)
A node the static backend cannot emit (a runtime-control region or conditional activation), rejected by name before any emission work.
AlignMomentsWithNoise
Alignment is noiseless.
AlignMomentsWithSegments
Alignment cannot preserve per-node segments.
AlignMomentsWithEmptyMetadata
An empty circuit has no aligned slot for metadata.
MomentAlignment(MomentAlignmentError)
Moment-alignment planning failed.
MalformedGraph(&'static str)
The graph violates an invariant the emit walk relies on (a template, instance, or producer a node names is missing, or a measurement is read before it is emitted). Well-formed programs from the compiler never trigger this; it guards hand-built or unvalidated graphs.
InstanceMerge(NodeTemplateInstanceMergeError)
A node’s template instances failed to merge into one emission circuit. Validation runs the same merge, so a validated Bloq never triggers this; it guards hand-built or unvalidated graphs.
Flatten(FlattenError)
Flattening failed on a straight-line emission path.
InvalidNoiseProbability
The uniform physical error probability is not finite or outside [0, 1].
IndexOutOfRange
A backend index cannot be represented in its unsigned 32-bit id space.
Fields
QubitIndexOutOfRange
A qubit target exceeds Stim’s 24-bit target payload.
Fields
CoordinateOverflow(CoordinateOverflowError)
A template instance offset moves a circuit qubit outside the global
i32 coordinate lattice.
Circuit(CircuitError)
The circuit layer rejected an instruction while emitting a node’s circuit (e.g. a measurement id outside the emitted range).
ClassicalResolution(ResolveError)
A classical value has no affine record recipe on the static path.
CyclicGraph(CycleDetected)
The graph contains a cycle, so it has no topological emit order. Validated programs are acyclic; this guards hand-built or unvalidated graphs.
Trait Implementations§
Source§impl Clone for StimEmissionError
impl Clone for StimEmissionError
Source§fn clone(&self) -> StimEmissionError
fn clone(&self) -> StimEmissionError
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for StimEmissionError
impl Debug for StimEmissionError
Source§impl Display for StimEmissionError
impl Display for StimEmissionError
impl Eq for StimEmissionError
Source§impl Error for StimEmissionError
impl Error for StimEmissionError
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<BloqValidationError> for StimEmissionError
impl From<BloqValidationError> for StimEmissionError
Source§fn from(source: BloqValidationError) -> Self
fn from(source: BloqValidationError) -> Self
Source§impl From<CircuitError> for StimEmissionError
impl From<CircuitError> for StimEmissionError
Source§fn from(source: CircuitError) -> Self
fn from(source: CircuitError) -> Self
Source§impl From<CoordinateOverflowError> for StimEmissionError
impl From<CoordinateOverflowError> for StimEmissionError
Source§fn from(source: CoordinateOverflowError) -> Self
fn from(source: CoordinateOverflowError) -> Self
Source§impl From<CycleDetected> for StimEmissionError
impl From<CycleDetected> for StimEmissionError
Source§fn from(source: CycleDetected) -> Self
fn from(source: CycleDetected) -> Self
Source§impl From<DetectorBundleError> for StimEmissionError
impl From<DetectorBundleError> for StimEmissionError
Source§fn from(source: DetectorBundleError) -> Self
fn from(source: DetectorBundleError) -> Self
Source§impl From<FlattenError> for StimEmissionError
impl From<FlattenError> for StimEmissionError
Source§fn from(source: FlattenError) -> Self
fn from(source: FlattenError) -> Self
Source§impl From<MomentAlignmentError> for StimEmissionError
impl From<MomentAlignmentError> for StimEmissionError
Source§fn from(source: MomentAlignmentError) -> Self
fn from(source: MomentAlignmentError) -> Self
Source§impl From<NodeTemplateInstanceMergeError> for StimEmissionError
impl From<NodeTemplateInstanceMergeError> for StimEmissionError
Source§fn from(source: NodeTemplateInstanceMergeError) -> Self
fn from(source: NodeTemplateInstanceMergeError) -> Self
Source§impl From<ResolveError> for StimEmissionError
impl From<ResolveError> for StimEmissionError
Source§fn from(source: ResolveError) -> Self
fn from(source: ResolveError) -> Self
Source§impl From<StimEmissionError> for StimNoiseError
impl From<StimEmissionError> for StimNoiseError
Source§fn from(source: StimEmissionError) -> Self
fn from(source: StimEmissionError) -> Self
Source§impl From<StimEmissionError> for StimVerifyError
impl From<StimEmissionError> for StimVerifyError
Source§fn from(source: StimEmissionError) -> Self
fn from(source: StimEmissionError) -> Self
Source§impl PartialEq for StimEmissionError
impl PartialEq for StimEmissionError
impl StructuralPartialEq for StimEmissionError
Auto Trait Implementations§
impl Freeze for StimEmissionError
impl RefUnwindSafe for StimEmissionError
impl Send for StimEmissionError
impl Sync for StimEmissionError
impl Unpin for StimEmissionError
impl UnsafeUnpin for StimEmissionError
impl UnwindSafe for StimEmissionError
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.Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more