pub struct Bet { /* private fields */ }Expand description
A bet in a betting market.
Implementations§
Source§impl Bet
impl Bet
Sourcepub fn from_stake_or_liability(
price: Decimal,
volume: Decimal,
side: BetSide,
) -> Self
pub fn from_stake_or_liability( price: Decimal, volume: Decimal, side: BetSide, ) -> Self
Creates a bet from a stake or liability depending on the bet side.
For BetSide::Back this calls Self::from_stake and for
BetSide::Lay it calls Self::from_liability.
§Panics
Panics if side is BetSide::Lay and Self::from_liability panics.
Sourcepub fn from_stake_or_liability_checked(
price: Decimal,
volume: Decimal,
side: BetSide,
) -> Result<Self>
pub fn from_stake_or_liability_checked( price: Decimal, volume: Decimal, side: BetSide, ) -> Result<Self>
Creates a bet from a stake or liability depending on the bet side.
§Errors
Returns an error if side is BetSide::Lay and Self::from_liability_checked fails.
Sourcepub fn from_stake(price: Decimal, stake: Decimal, side: BetSide) -> Self
pub fn from_stake(price: Decimal, stake: Decimal, side: BetSide) -> Self
Creates a bet from a given stake.
Sourcepub fn from_liability(price: Decimal, liability: Decimal, side: BetSide) -> Self
pub fn from_liability(price: Decimal, liability: Decimal, side: BetSide) -> Self
Creates a bet from a given liability.
§Panics
Panics if the side is not BetSide::Lay, if price is not greater than 1,
or if the stake calculation overflows.
Sourcepub fn from_liability_checked(
price: Decimal,
liability: Decimal,
side: BetSide,
) -> Result<Self>
pub fn from_liability_checked( price: Decimal, liability: Decimal, side: BetSide, ) -> Result<Self>
Creates a bet from a given liability.
§Errors
Returns an error if the side is not BetSide::Lay, if price is not greater
than 1, or if the stake calculation overflows.
Sourcepub fn exposure(&self) -> Decimal
pub fn exposure(&self) -> Decimal
Returns the bet’s exposure.
For BACK bets, exposure is positive; for LAY bets, it is negative.
§Panics
Panics if the calculation overflows.
Sourcepub fn exposure_checked(&self) -> Result<Decimal>
pub fn exposure_checked(&self) -> Result<Decimal>
Sourcepub fn liability(&self) -> Decimal
pub fn liability(&self) -> Decimal
Returns the bet’s liability.
For BACK bets, liability equals the stake; for LAY bets, it is stake multiplied by (price - 1).
§Panics
Panics if the calculation overflows.
Sourcepub fn liability_checked(&self) -> Result<Decimal>
pub fn liability_checked(&self) -> Result<Decimal>
Sourcepub fn profit(&self) -> Decimal
pub fn profit(&self) -> Decimal
Returns the bet’s profit.
For BACK bets, profit is stake * (price - 1); for LAY bets it equals the stake.
§Panics
Panics if the calculation overflows.
Sourcepub fn profit_checked(&self) -> Result<Decimal>
pub fn profit_checked(&self) -> Result<Decimal>
Sourcepub fn outcome_win_payoff(&self) -> Decimal
pub fn outcome_win_payoff(&self) -> Decimal
Returns the outcome win payoff.
For BACK bets this is the profit; for LAY bets it is the negative liability.
§Panics
Panics if the calculation overflows.
Sourcepub fn outcome_win_payoff_checked(&self) -> Result<Decimal>
pub fn outcome_win_payoff_checked(&self) -> Result<Decimal>
Sourcepub fn outcome_lose_payoff(&self) -> Decimal
pub fn outcome_lose_payoff(&self) -> Decimal
Returns the outcome lose payoff.
For BACK bets this is the negative liability; for LAY bets it is the profit.
§Panics
Panics if the calculation overflows.
Sourcepub fn outcome_lose_payoff_checked(&self) -> Result<Decimal>
pub fn outcome_lose_payoff_checked(&self) -> Result<Decimal>
Sourcepub fn hedging_stake(&self, price: Decimal) -> Decimal
pub fn hedging_stake(&self, price: Decimal) -> Decimal
Returns the hedging stake given a new price.
§Panics
Panics if price is zero, if this bet’s price is zero on the lay path,
or if the calculation overflows.
Sourcepub fn hedging_stake_checked(&self, price: Decimal) -> Result<Decimal>
pub fn hedging_stake_checked(&self, price: Decimal) -> Result<Decimal>
Returns the hedging stake given a new price.
§Errors
Returns an error if price is zero, if this bet’s price is zero on the
lay path, or if the calculation overflows.
Sourcepub fn hedging_bet(&self, price: Decimal) -> Self
pub fn hedging_bet(&self, price: Decimal) -> Self
Sourcepub fn hedging_bet_checked(&self, price: Decimal) -> Result<Self>
pub fn hedging_bet_checked(&self, price: Decimal) -> Result<Self>
Creates a hedging bet for a given price.
§Errors
Returns an error if Self::hedging_stake_checked fails.
Trait Implementations§
impl DerefToPyAny for Bet
impl Eq for Bet
Source§impl<'py> IntoPyObject<'py> for Bet
impl<'py> IntoPyObject<'py> for Bet
Source§impl PyClassImpl for Bet
impl PyClassImpl for Bet
Source§const IS_BASETYPE: bool = false
const IS_BASETYPE: bool = false
Source§const IS_SUBCLASS: bool = false
const IS_SUBCLASS: bool = false
Source§const IS_MAPPING: bool = false
const IS_MAPPING: bool = false
Source§const IS_SEQUENCE: bool = false
const IS_SEQUENCE: bool = false
Source§const IS_IMMUTABLE_TYPE: bool = false
const IS_IMMUTABLE_TYPE: bool = false
Source§const RAW_DOC: &'static CStr = /// A bet in a betting market.
const RAW_DOC: &'static CStr = /// A bet in a betting market.
Source§const DOC: &'static CStr
const DOC: &'static CStr
text_signature if a constructor is defined. Read moreSource§type Layout = <<Bet as PyClassImpl>::BaseNativeType as PyClassBaseType>::Layout<Bet>
type Layout = <<Bet as PyClassImpl>::BaseNativeType as PyClassBaseType>::Layout<Bet>
Source§type ThreadChecker = NoopThreadChecker
type ThreadChecker = NoopThreadChecker
type Inventory = Pyo3MethodsInventoryForBet
Source§type PyClassMutability = <<PyAny as PyClassBaseType>::PyClassMutability as PyClassMutability>::MutableChild
type PyClassMutability = <<PyAny as PyClassBaseType>::PyClassMutability as PyClassMutability>::MutableChild
Source§type BaseNativeType = PyAny
type BaseNativeType = PyAny
PyAny by default, and when you declare
#[pyclass(extends=PyDict)], it’s PyDict.fn items_iter() -> PyClassItemsIter
fn lazy_type_object() -> &'static LazyTypeObject<Self>
§fn dict_offset() -> Option<PyObjectOffset>
fn dict_offset() -> Option<PyObjectOffset>
§fn weaklist_offset() -> Option<PyObjectOffset>
fn weaklist_offset() -> Option<PyObjectOffset>
Source§impl PyClassNewTextSignature for Bet
impl PyClassNewTextSignature for Bet
const TEXT_SIGNATURE: &'static str = "(price, stake, side)"
Source§impl PyStubType for Bet
impl PyStubType for Bet
Source§fn type_output() -> TypeInfo
fn type_output() -> TypeInfo
§fn type_input() -> TypeInfo
fn type_input() -> TypeInfo
Source§impl PyTypeInfo for Bet
impl PyTypeInfo for Bet
Source§const NAME: &str = <Self as ::pyo3::PyClass>::NAME
const NAME: &str = <Self as ::pyo3::PyClass>::NAME
prefer using ::type_object(py).name() to get the correct runtime value
Source§const MODULE: Option<&str> = <Self as ::pyo3::impl_::pyclass::PyClassImpl>::MODULE
const MODULE: Option<&str> = <Self as ::pyo3::impl_::pyclass::PyClassImpl>::MODULE
prefer using ::type_object(py).module() to get the correct runtime value
Source§fn type_object_raw(py: Python<'_>) -> *mut PyTypeObject
fn type_object_raw(py: Python<'_>) -> *mut PyTypeObject
§fn type_object(py: Python<'_>) -> Bound<'_, PyType>
fn type_object(py: Python<'_>) -> Bound<'_, PyType>
§fn is_type_of(object: &Bound<'_, PyAny>) -> bool
fn is_type_of(object: &Bound<'_, PyAny>) -> bool
object is an instance of this type or a subclass of this type.§fn is_exact_type_of(object: &Bound<'_, PyAny>) -> bool
fn is_exact_type_of(object: &Bound<'_, PyAny>) -> bool
object is an instance of this type.impl StructuralPartialEq for Bet
Auto Trait Implementations§
impl Freeze for Bet
impl RefUnwindSafe for Bet
impl Send for Bet
impl Sync for Bet
impl Unpin for Bet
impl UnsafeUnpin for Bet
impl UnwindSafe for Bet
Blanket Implementations§
impl<T> Allocation for T
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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
key and return true if they are equal.§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
impl<'py, T> FromPyObjectOwned<'py> for Twhere
T: for<'a> FromPyObject<'a, 'py>,
§impl<'py, T> IntoPyObjectExt<'py> for Twhere
T: IntoPyObject<'py>,
impl<'py, T> IntoPyObjectExt<'py> for Twhere
T: IntoPyObject<'py>,
§fn into_bound_py_any(self, py: Python<'py>) -> Result<Bound<'py, PyAny>, PyErr>
fn into_bound_py_any(self, py: Python<'py>) -> Result<Bound<'py, PyAny>, PyErr>
self into an owned Python object, dropping type information.§fn into_py_any(self, py: Python<'py>) -> Result<Py<PyAny>, PyErr>
fn into_py_any(self, py: Python<'py>) -> Result<Py<PyAny>, PyErr>
self into an owned Python object, dropping type information and unbinding it
from the 'py lifetime.§fn into_pyobject_or_pyerr(self, py: Python<'py>) -> Result<Self::Output, PyErr>
fn into_pyobject_or_pyerr(self, py: Python<'py>) -> Result<Self::Output, PyErr>
self into a Python object. Read more§impl<'py, T> IntoPyObjectNautilusExt<'py> for Twhere
T: IntoPyObjectExt<'py>,
impl<'py, T> IntoPyObjectNautilusExt<'py> for Twhere
T: IntoPyObjectExt<'py>,
§fn into_py_any_unwrap(self, py: Python<'py>) -> Py<PyAny>where
Self: IntoPyObject<'py, Error = !>,
fn into_py_any_unwrap(self, py: Python<'py>) -> Py<PyAny>where
Self: IntoPyObject<'py, Error = !>,
self into a [Py<PyAny>] when the underlying conversion is infallible.§impl<T> PyErrArguments for T
impl<T> PyErrArguments for T
§impl<T> PyTypeCheck for Twhere
T: PyTypeInfo,
impl<T> PyTypeCheck for Twhere
T: PyTypeInfo,
§fn type_check(object: &Bound<'_, PyAny>) -> bool
fn type_check(object: &Bound<'_, PyAny>) -> bool
§fn classinfo_object(py: Python<'_>) -> Bound<'_, PyAny>
fn classinfo_object(py: Python<'_>) -> Bound<'_, PyAny>
isinstance and issubclass function. Read more