pub enum OracleVerdict {
Match {
output_len: usize,
},
HostOnlyOk {
cpu_output_len: usize,
cpu_output_first_bytes: [u8; 16],
},
Divergence(OracleDivergence),
Skipped(&'static str),
}Expand description
Result of a single oracle comparison.
Variants§
Match
Both paths produced byte-equal output.
HostOnlyOk
Only the CPU reference path executed (no CUDA host on this runner). The CPU output length is reported so test bodies can at least validate the harness wiring on no-CUDA hosts. v0.4 (T38) introduced this variant so the proptest harness can run end-to-end on the default CI without a CUDA device.
Fields
cpu_output_first_bytes: [u8; 16]Up to the first 16 bytes of the CPU output, surfaced for
debug formatting on proptest failure. Not used for
equality decisions — the test harness compares the full
vector via reference_eval separately.
Divergence(OracleDivergence)
Outputs diverged. The CI gate must fail.
Skipped(&'static str)
Comparison was skipped (typically: one of the two paths is not available on the current host). Not a failure; the test runner should record it as a skip.
Trait Implementations§
Source§impl Clone for OracleVerdict
impl Clone for OracleVerdict
Source§fn clone(&self) -> OracleVerdict
fn clone(&self) -> OracleVerdict
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 OracleVerdict
impl Debug for OracleVerdict
impl Eq for OracleVerdict
Source§impl PartialEq for OracleVerdict
impl PartialEq for OracleVerdict
Source§fn eq(&self, other: &OracleVerdict) -> bool
fn eq(&self, other: &OracleVerdict) -> bool
self and other values to be equal, and is used by ==.impl StructuralPartialEq for OracleVerdict
Auto Trait Implementations§
impl Freeze for OracleVerdict
impl RefUnwindSafe for OracleVerdict
impl Send for OracleVerdict
impl Sync for OracleVerdict
impl Unpin for OracleVerdict
impl UnsafeUnpin for OracleVerdict
impl UnwindSafe for OracleVerdict
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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