Struct WinningProbability
pub struct WinningProbability([u8; 7]);Expand description
Represents a ticket-winning probability.
It holds the modified IEEE-754 representation but behaves like a reduced precision float.
It intentionally does not implement Ord or Eq, as
it can be either approximately compared or
lexicographically compared.
Tuple Fields§
§0: [u8; 7]Implementations§
§impl WinningProbability
impl WinningProbability
pub const ALWAYS: WinningProbability
pub const ALWAYS: WinningProbability
100% winning probability
pub const EPSILON: f64 = 0.00000001
pub const NEVER: WinningProbability
pub const NEVER: WinningProbability
0% winning probability.
pub fn as_encoded(&self) -> [u8; 7]
pub fn as_encoded(&self) -> [u8; 7]
Convenience function to convert to internal probability representation.
pub fn try_from_f64(win_prob: f64) -> Result<WinningProbability, CoreTypesError>
pub fn try_from_f64(win_prob: f64) -> Result<WinningProbability, CoreTypesError>
Tries to get probability from a float.
pub fn approx_cmp(&self, other: &WinningProbability) -> Ordering
pub fn approx_cmp(&self, other: &WinningProbability) -> Ordering
Performs approximate comparison up to Self::EPSILON.
pub fn approx_eq(&self, other: &WinningProbability) -> bool
pub fn approx_eq(&self, other: &WinningProbability) -> bool
Performs approximate equality comparison up to Self::EPSILON.
pub fn lex_cmp(&self, other: &WinningProbability) -> Ordering
pub fn lex_cmp(&self, other: &WinningProbability) -> Ordering
Performs lexicographical comparison of the luck values.
pub fn lex_eq(&self, other: &WinningProbability) -> bool
pub fn lex_eq(&self, other: &WinningProbability) -> bool
Performs lexicographical equality comparison of the luck values.
pub fn min(&self, other: &WinningProbability) -> WinningProbability
pub fn min(&self, other: &WinningProbability) -> WinningProbability
Gets the minimum of two winning probabilities.
pub fn max(&self, other: &WinningProbability) -> WinningProbability
pub fn max(&self, other: &WinningProbability) -> WinningProbability
Gets the maximum of two winning probabilities.
Trait Implementations§
§impl AsRef<[u8]> for WinningProbability
impl AsRef<[u8]> for WinningProbability
§impl BytesRepresentable for WinningProbability
impl BytesRepresentable for WinningProbability
§impl Clone for WinningProbability
impl Clone for WinningProbability
§fn clone(&self) -> WinningProbability
fn clone(&self) -> WinningProbability
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more§impl Debug for WinningProbability
impl Debug for WinningProbability
§impl Default for WinningProbability
impl Default for WinningProbability
§fn default() -> WinningProbability
fn default() -> WinningProbability
§impl<'de> Deserialize<'de> for WinningProbability
impl<'de> Deserialize<'de> for WinningProbability
§fn deserialize<__D>(
__deserializer: __D,
) -> Result<WinningProbability, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<WinningProbability, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
§impl Display for WinningProbability
impl Display for WinningProbability
§impl<'a> From<&'a [u8; 7]> for WinningProbability
impl<'a> From<&'a [u8; 7]> for WinningProbability
§fn from(value: &'a [u8; 7]) -> WinningProbability
fn from(value: &'a [u8; 7]) -> WinningProbability
§impl From<[u8; 7]> for WinningProbability
impl From<[u8; 7]> for WinningProbability
§fn from(value: [u8; 7]) -> WinningProbability
fn from(value: [u8; 7]) -> WinningProbability
§impl From<WinningProbability> for [u8; 7]
impl From<WinningProbability> for [u8; 7]
§fn from(value: WinningProbability) -> [u8; 7]
fn from(value: WinningProbability) -> [u8; 7]
§impl From<u64> for WinningProbability
impl From<u64> for WinningProbability
§fn from(value: u64) -> WinningProbability
fn from(value: u64) -> WinningProbability
§impl FromStr for WinningProbability
impl FromStr for WinningProbability
§impl Hash for WinningProbability
impl Hash for WinningProbability
§impl PartialEq<[u8; 7]> for WinningProbability
impl PartialEq<[u8; 7]> for WinningProbability
§impl PartialEq<f64> for WinningProbability
impl PartialEq<f64> for WinningProbability
§impl Serialize for WinningProbability
impl Serialize for WinningProbability
§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
§impl<'a> TryFrom<&'a [u8]> for WinningProbability
impl<'a> TryFrom<&'a [u8]> for WinningProbability
§impl TryFrom<f64> for WinningProbability
impl TryFrom<f64> for WinningProbability
impl Copy for WinningProbability
Auto Trait Implementations§
impl Freeze for WinningProbability
impl RefUnwindSafe for WinningProbability
impl Send for WinningProbability
impl Sync for WinningProbability
impl Unpin for WinningProbability
impl UnwindSafe for WinningProbability
Blanket Implementations§
§impl<T> ToHex for T
impl<T> ToHex for T
§fn encode_hex<U>(&self) -> Uwhere
U: FromIterator<char>,
fn encode_hex<U>(&self) -> Uwhere
U: FromIterator<char>,
ToHexExt insteadself into the result.
Lower case letters are used (e.g. f9b4ca).§fn encode_hex_upper<U>(&self) -> Uwhere
U: FromIterator<char>,
fn encode_hex_upper<U>(&self) -> Uwhere
U: FromIterator<char>,
ToHexExt insteadself into the result.
Upper case letters are used (e.g. F9B4CA).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<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§impl<T> ToHex for Twhere
T: BytesRepresentable,
impl<T> ToHex for Twhere
T: BytesRepresentable,
Source§impl<T> ToHex for T
impl<T> ToHex for T
Source§fn encode_hex<U>(&self) -> Uwhere
U: FromIterator<char>,
fn encode_hex<U>(&self) -> Uwhere
U: FromIterator<char>,
self into the result. Lower case
letters are used (e.g. f9b4ca)Source§fn encode_hex_upper<U>(&self) -> Uwhere
U: FromIterator<char>,
fn encode_hex_upper<U>(&self) -> Uwhere
U: FromIterator<char>,
self into the result. Upper case
letters are used (e.g. F9B4CA)§impl<T> ToHexExt for T
impl<T> ToHexExt for T
§fn encode_hex(&self) -> String
fn encode_hex(&self) -> String
self into the result.
Lower case letters are used (e.g. f9b4ca).§fn encode_hex_upper(&self) -> String
fn encode_hex_upper(&self) -> String
self into the result.
Upper case letters are used (e.g. F9B4CA).§fn encode_hex_with_prefix(&self) -> String
fn encode_hex_with_prefix(&self) -> String
self into the result with prefix 0x.
Lower case letters are used (e.g. 0xf9b4ca).§fn encode_hex_upper_with_prefix(&self) -> String
fn encode_hex_upper_with_prefix(&self) -> String
self into the result with prefix 0X.
Upper case letters are used (e.g. 0xF9B4CA).§impl<T> ToStringFallible for Twhere
T: Display,
impl<T> ToStringFallible for Twhere
T: Display,
§fn try_to_string(&self) -> Result<String, TryReserveError>
fn try_to_string(&self) -> Result<String, TryReserveError>
ToString::to_string, but without panic on OOM.