pub struct PyNumberSlots {Show 49 fields
pub add: AtomicCell<Option<PyNumberBinaryFunc>>,
pub subtract: AtomicCell<Option<PyNumberBinaryFunc>>,
pub multiply: AtomicCell<Option<PyNumberBinaryFunc>>,
pub remainder: AtomicCell<Option<PyNumberBinaryFunc>>,
pub divmod: AtomicCell<Option<PyNumberBinaryFunc>>,
pub power: AtomicCell<Option<fn(&PyObject, &PyObject, &PyObject, &VirtualMachine) -> PyResult>>,
pub negative: AtomicCell<Option<PyNumberUnaryFunc>>,
pub positive: AtomicCell<Option<PyNumberUnaryFunc>>,
pub absolute: AtomicCell<Option<PyNumberUnaryFunc>>,
pub boolean: AtomicCell<Option<PyNumberUnaryFunc<bool>>>,
pub invert: AtomicCell<Option<PyNumberUnaryFunc>>,
pub lshift: AtomicCell<Option<PyNumberBinaryFunc>>,
pub rshift: AtomicCell<Option<PyNumberBinaryFunc>>,
pub and: AtomicCell<Option<PyNumberBinaryFunc>>,
pub xor: AtomicCell<Option<PyNumberBinaryFunc>>,
pub or: AtomicCell<Option<PyNumberBinaryFunc>>,
pub int: AtomicCell<Option<PyNumberUnaryFunc>>,
pub float: AtomicCell<Option<PyNumberUnaryFunc>>,
pub right_add: AtomicCell<Option<PyNumberBinaryFunc>>,
pub right_subtract: AtomicCell<Option<PyNumberBinaryFunc>>,
pub right_multiply: AtomicCell<Option<PyNumberBinaryFunc>>,
pub right_remainder: AtomicCell<Option<PyNumberBinaryFunc>>,
pub right_divmod: AtomicCell<Option<PyNumberBinaryFunc>>,
pub right_power: AtomicCell<Option<fn(&PyObject, &PyObject, &PyObject, &VirtualMachine) -> PyResult>>,
pub right_lshift: AtomicCell<Option<PyNumberBinaryFunc>>,
pub right_rshift: AtomicCell<Option<PyNumberBinaryFunc>>,
pub right_and: AtomicCell<Option<PyNumberBinaryFunc>>,
pub right_xor: AtomicCell<Option<PyNumberBinaryFunc>>,
pub right_or: AtomicCell<Option<PyNumberBinaryFunc>>,
pub inplace_add: AtomicCell<Option<PyNumberBinaryFunc>>,
pub inplace_subtract: AtomicCell<Option<PyNumberBinaryFunc>>,
pub inplace_multiply: AtomicCell<Option<PyNumberBinaryFunc>>,
pub inplace_remainder: AtomicCell<Option<PyNumberBinaryFunc>>,
pub inplace_power: AtomicCell<Option<fn(&PyObject, &PyObject, &PyObject, &VirtualMachine) -> PyResult>>,
pub inplace_lshift: AtomicCell<Option<PyNumberBinaryFunc>>,
pub inplace_rshift: AtomicCell<Option<PyNumberBinaryFunc>>,
pub inplace_and: AtomicCell<Option<PyNumberBinaryFunc>>,
pub inplace_xor: AtomicCell<Option<PyNumberBinaryFunc>>,
pub inplace_or: AtomicCell<Option<PyNumberBinaryFunc>>,
pub floor_divide: AtomicCell<Option<PyNumberBinaryFunc>>,
pub true_divide: AtomicCell<Option<PyNumberBinaryFunc>>,
pub right_floor_divide: AtomicCell<Option<PyNumberBinaryFunc>>,
pub right_true_divide: AtomicCell<Option<PyNumberBinaryFunc>>,
pub inplace_floor_divide: AtomicCell<Option<PyNumberBinaryFunc>>,
pub inplace_true_divide: AtomicCell<Option<PyNumberBinaryFunc>>,
pub index: AtomicCell<Option<PyNumberUnaryFunc>>,
pub matrix_multiply: AtomicCell<Option<PyNumberBinaryFunc>>,
pub right_matrix_multiply: AtomicCell<Option<PyNumberBinaryFunc>>,
pub inplace_matrix_multiply: AtomicCell<Option<PyNumberBinaryFunc>>,
}
Fields§
§add: AtomicCell<Option<PyNumberBinaryFunc>>
§subtract: AtomicCell<Option<PyNumberBinaryFunc>>
§multiply: AtomicCell<Option<PyNumberBinaryFunc>>
§remainder: AtomicCell<Option<PyNumberBinaryFunc>>
§divmod: AtomicCell<Option<PyNumberBinaryFunc>>
§power: AtomicCell<Option<fn(&PyObject, &PyObject, &PyObject, &VirtualMachine) -> PyResult>>
§negative: AtomicCell<Option<PyNumberUnaryFunc>>
§positive: AtomicCell<Option<PyNumberUnaryFunc>>
§absolute: AtomicCell<Option<PyNumberUnaryFunc>>
§boolean: AtomicCell<Option<PyNumberUnaryFunc<bool>>>
§invert: AtomicCell<Option<PyNumberUnaryFunc>>
§lshift: AtomicCell<Option<PyNumberBinaryFunc>>
§rshift: AtomicCell<Option<PyNumberBinaryFunc>>
§and: AtomicCell<Option<PyNumberBinaryFunc>>
§xor: AtomicCell<Option<PyNumberBinaryFunc>>
§or: AtomicCell<Option<PyNumberBinaryFunc>>
§int: AtomicCell<Option<PyNumberUnaryFunc>>
§float: AtomicCell<Option<PyNumberUnaryFunc>>
§right_add: AtomicCell<Option<PyNumberBinaryFunc>>
§right_subtract: AtomicCell<Option<PyNumberBinaryFunc>>
§right_multiply: AtomicCell<Option<PyNumberBinaryFunc>>
§right_remainder: AtomicCell<Option<PyNumberBinaryFunc>>
§right_divmod: AtomicCell<Option<PyNumberBinaryFunc>>
§right_power: AtomicCell<Option<fn(&PyObject, &PyObject, &PyObject, &VirtualMachine) -> PyResult>>
§right_lshift: AtomicCell<Option<PyNumberBinaryFunc>>
§right_rshift: AtomicCell<Option<PyNumberBinaryFunc>>
§right_and: AtomicCell<Option<PyNumberBinaryFunc>>
§right_xor: AtomicCell<Option<PyNumberBinaryFunc>>
§right_or: AtomicCell<Option<PyNumberBinaryFunc>>
§inplace_add: AtomicCell<Option<PyNumberBinaryFunc>>
§inplace_subtract: AtomicCell<Option<PyNumberBinaryFunc>>
§inplace_multiply: AtomicCell<Option<PyNumberBinaryFunc>>
§inplace_remainder: AtomicCell<Option<PyNumberBinaryFunc>>
§inplace_power: AtomicCell<Option<fn(&PyObject, &PyObject, &PyObject, &VirtualMachine) -> PyResult>>
§inplace_lshift: AtomicCell<Option<PyNumberBinaryFunc>>
§inplace_rshift: AtomicCell<Option<PyNumberBinaryFunc>>
§inplace_and: AtomicCell<Option<PyNumberBinaryFunc>>
§inplace_xor: AtomicCell<Option<PyNumberBinaryFunc>>
§inplace_or: AtomicCell<Option<PyNumberBinaryFunc>>
§floor_divide: AtomicCell<Option<PyNumberBinaryFunc>>
§true_divide: AtomicCell<Option<PyNumberBinaryFunc>>
§right_floor_divide: AtomicCell<Option<PyNumberBinaryFunc>>
§right_true_divide: AtomicCell<Option<PyNumberBinaryFunc>>
§inplace_floor_divide: AtomicCell<Option<PyNumberBinaryFunc>>
§inplace_true_divide: AtomicCell<Option<PyNumberBinaryFunc>>
§index: AtomicCell<Option<PyNumberUnaryFunc>>
§matrix_multiply: AtomicCell<Option<PyNumberBinaryFunc>>
§right_matrix_multiply: AtomicCell<Option<PyNumberBinaryFunc>>
§inplace_matrix_multiply: AtomicCell<Option<PyNumberBinaryFunc>>
Implementations§
Source§impl PyNumberSlots
impl PyNumberSlots
pub fn left_binary_op( &self, op_slot: PyNumberBinaryOp, ) -> Option<PyNumberBinaryFunc>
pub fn right_binary_op( &self, op_slot: PyNumberBinaryOp, ) -> Option<PyNumberBinaryFunc>
pub fn left_ternary_op( &self, op_slot: PyNumberTernaryOp, ) -> Option<fn(&PyObject, &PyObject, &PyObject, &VirtualMachine) -> PyResult>
pub fn right_ternary_op( &self, op_slot: PyNumberTernaryOp, ) -> Option<fn(&PyObject, &PyObject, &PyObject, &VirtualMachine) -> PyResult>
Trait Implementations§
Source§impl Default for PyNumberSlots
impl Default for PyNumberSlots
Source§fn default() -> PyNumberSlots
fn default() -> PyNumberSlots
Returns the “default value” for a type. Read more
Source§impl From<&PyNumberMethods> for PyNumberSlots
impl From<&PyNumberMethods> for PyNumberSlots
Source§fn from(value: &PyNumberMethods) -> Self
fn from(value: &PyNumberMethods) -> Self
Converts to this type from the input type.
Auto Trait Implementations§
impl !Freeze for PyNumberSlots
impl RefUnwindSafe for PyNumberSlots
impl Send for PyNumberSlots
impl Sync for PyNumberSlots
impl Unpin for PyNumberSlots
impl UnwindSafe for PyNumberSlots
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
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>
Converts
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>
Converts
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