pub enum ChoiceValue {
F64(f64),
I64(i64),
U64(u64),
Usize(usize),
Bool(bool),
}Expand description
Type-safe storage for values from different distribution types.
ChoiceValue enables traces to store values from any supported distribution while maintaining type safety. Each variant corresponds to a distribution return type, preventing runtime type errors.
Example:
// Different value types from distributions
let continuous = ChoiceValue::F64(3.14159); // Normal, Uniform, etc.
let discrete = ChoiceValue::U64(42); // Poisson, Binomial
let categorical = ChoiceValue::Usize(2); // Categorical selection
let binary = ChoiceValue::Bool(true); // Bernoulli outcome
// Type-safe extraction
assert_eq!(continuous.as_f64(), Some(3.14159));
assert_eq!(discrete.as_u64(), Some(42));
assert_eq!(binary.as_bool(), Some(true));
// Type mismatches return None
assert_eq!(continuous.as_bool(), None);Variants§
F64(f64)
Floating-point value (continuous distributions).
I64(i64)
Signed integer value.
U64(u64)
Unsigned integer value (Poisson, Binomial counts).
Usize(usize)
Array index value (Categorical choices).
Bool(bool)
Boolean value (Bernoulli outcomes).
Implementations§
Source§impl ChoiceValue
impl ChoiceValue
Sourcepub fn as_f64(&self) -> Option<f64>
pub fn as_f64(&self) -> Option<f64>
Try to extract an f64 value, returning None if the type doesn’t match.
Sourcepub fn as_bool(&self) -> Option<bool>
pub fn as_bool(&self) -> Option<bool>
Try to extract a bool value, returning None if the type doesn’t match.
Sourcepub fn as_u64(&self) -> Option<u64>
pub fn as_u64(&self) -> Option<u64>
Try to extract a u64 value, returning None if the type doesn’t match.
Sourcepub fn as_usize(&self) -> Option<usize>
pub fn as_usize(&self) -> Option<usize>
Try to extract a usize value, returning None if the type doesn’t match.
Trait Implementations§
Source§impl Clone for ChoiceValue
impl Clone for ChoiceValue
Source§fn clone(&self) -> ChoiceValue
fn clone(&self) -> ChoiceValue
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for ChoiceValue
impl Debug for ChoiceValue
Source§impl PartialEq for ChoiceValue
impl PartialEq for ChoiceValue
impl StructuralPartialEq for ChoiceValue
Auto Trait Implementations§
impl Freeze for ChoiceValue
impl RefUnwindSafe for ChoiceValue
impl Send for ChoiceValue
impl Sync for ChoiceValue
impl Unpin for ChoiceValue
impl UnsafeUnpin for ChoiceValue
impl UnwindSafe for ChoiceValue
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