#[repr(transparent)]
pub struct PyRefExact<T: PyObjectPayload> { /* private fields */ }
Expand description

PyRef but guaranteed not to be a subtype instance

Implementations§

source§

impl<T: PyObjectPayload> PyRefExact<T>

source

pub unsafe fn new_unchecked(obj: PyRef<T>) -> Self

Safety

obj must have exact type for the payload

source

pub fn into_pyref(self) -> PyRef<T>

Methods from Deref<Target = Py<T>>§

source

pub fn to_attributes( &self, vm: &VirtualMachine ) -> IndexMap<&'static PyStrInterned, PyObjectRef, RandomState>

Take a python dictionary and convert it to attributes.

source

pub fn get_item_opt<K: DictKey + ?Sized>( &self, key: &K, vm: &VirtualMachine ) -> PyResult<Option<PyObjectRef>>

source

pub fn get_item<K: DictKey + ?Sized>( &self, key: &K, vm: &VirtualMachine ) -> PyResult

source

pub fn set_item<K: DictKey + ?Sized>( &self, key: &K, value: PyObjectRef, vm: &VirtualMachine ) -> PyResult<()>

source

pub fn del_item<K: DictKey + ?Sized>( &self, key: &K, vm: &VirtualMachine ) -> PyResult<()>

source

pub fn get_chain<K: DictKey + ?Sized>( &self, other: &Self, key: &K, vm: &VirtualMachine ) -> PyResult<Option<PyObjectRef>>

source

pub fn f_back(&self, vm: &VirtualMachine) -> Option<PyRef<Frame>>

source

pub fn __init_methods(&self, vm: &VirtualMachine) -> PyResult<()>

source

pub fn dict(&self) -> PyDictRef

source

pub fn get_attr<'a>( &self, attr_name: impl AsPyStr<'a>, vm: &VirtualMachine ) -> PyResult

source

pub fn set_attr<'a>( &self, attr_name: impl AsPyStr<'a>, attr_value: impl Into<PyObjectRef>, vm: &VirtualMachine ) -> PyResult<()>

source

pub fn fast_issubclass(&self, cls: &impl Borrow<PyObject>) -> bool

Determines if subclass is actually a subclass of cls, this doesn’t call subclasscheck, so only use this if cls is known to have not overridden the base subclasscheck magic method.

source

pub fn iter_mro( &self ) -> impl Iterator<Item = &Py<PyType>> + DoubleEndedIterator

source

pub fn iter_base_chain(&self) -> impl Iterator<Item = &Py<PyType>>

source

pub fn extend_methods( &'static self, method_defs: &'static [PyMethodDef], ctx: &Context )

source

pub fn run(&self, vm: &VirtualMachine) -> PyResult<ExecutionResult>

source

pub fn yield_from_target(&self) -> Option<PyObjectRef>

source

pub fn is_internal_frame(&self) -> bool

source

pub fn next_external_frame(&self, vm: &VirtualMachine) -> Option<FrameRef>

source

pub fn build_function(&self, vm: &VirtualMachine) -> PyRef<PyNativeFunction>

source

pub fn build_method( &self, class: &'static Py<PyType>, vm: &VirtualMachine ) -> PyRef<PyMethodDescriptor>

source

pub fn upgrade(&self) -> Option<PyObjectRef>

source

pub fn downgrade( &self, callback: Option<PyObjectRef>, vm: &VirtualMachine ) -> PyResult<PyWeakRef<T>>

Trait Implementations§

source§

impl<T: PyObjectPayload> AsRef<Py<T>> for PyRefExact<T>

source§

fn as_ref(&self) -> &Py<T>

Converts this type into a shared reference of the (usually inferred) input type.
source§

impl<T: PyPayload> AsRef<PyExact<T>> for PyRefExact<T>

source§

fn as_ref(&self) -> &PyExact<T>

Converts this type into a shared reference of the (usually inferred) input type.
source§

impl<T: PyObjectPayload> AsRef<PyObject> for PyRefExact<T>

source§

fn as_ref(&self) -> &PyObject

Converts this type into a shared reference of the (usually inferred) input type.
source§

impl AsRef<str> for PyRefExact<PyStr>

source§

fn as_ref(&self) -> &str

Converts this type into a shared reference of the (usually inferred) input type.
source§

impl<T: PyObjectPayload> Borrow<Py<T>> for PyRefExact<T>

source§

fn borrow(&self) -> &Py<T>

Immutably borrows from an owned value. Read more
source§

impl<T: PyPayload> Borrow<PyExact<T>> for PyRefExact<T>

source§

fn borrow(&self) -> &PyExact<T>

Immutably borrows from an owned value. Read more
source§

impl<T: PyObjectPayload> Borrow<PyObject> for PyRefExact<T>

source§

fn borrow(&self) -> &PyObject

Immutably borrows from an owned value. Read more
source§

impl<T: PyObjectPayload> Clone for PyRefExact<T>

source§

fn clone(&self) -> Self

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<T: Debug + PyObjectPayload> Debug for PyRefExact<T>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<T: PyPayload> Deref for PyRefExact<T>

§

type Target = PyExact<T>

The resulting type after dereferencing.
source§

fn deref(&self) -> &PyExact<T>

Dereferences the value.
source§

impl<T: PyPayload> ToPyObject for PyRefExact<T>

source§

impl<T: PyPayload> TryFromObject for PyRefExact<T>

source§

fn try_from_object(vm: &VirtualMachine, obj: PyObjectRef) -> PyResult<Self>

Attempt to convert a Python object to a value of this type.

Auto Trait Implementations§

§

impl<T> !RefUnwindSafe for PyRefExact<T>

§

impl<T> !Send for PyRefExact<T>

§

impl<T> !Sync for PyRefExact<T>

§

impl<T> Unpin for PyRefExact<T>

§

impl<T> !UnwindSafe for PyRefExact<T>

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> AsObject for Twhere T: Borrow<PyObject>,

source§

fn as_object(&self) -> &PyObject

source§

fn get_id(&self) -> usize

source§

fn is<T>(&self, other: &T) -> boolwhere T: AsObject,

source§

fn class(&self) -> &Py<PyType>

source§

fn get_class_attr( &self, attr_name: &'static PyStrInterned ) -> Option<PyObjectRef>

source§

fn fast_isinstance(&self, cls: &Py<PyType>) -> bool

Determines if obj actually an instance of cls, this doesn’t call instancecheck, so only use this if cls is known to have not overridden the base instancecheck magic method.
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T, U> ExactFrom<T> for Uwhere U: TryFrom<T>,

§

fn exact_from(value: T) -> U

§

impl<T, U> ExactInto<U> for Twhere U: ExactFrom<T>,

§

fn exact_into(self) -> U

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> FromArgOptional for Twhere T: TryFromObject,

§

type Inner = T

source§

fn from_inner(x: T) -> T

source§

impl<T> FromArgs for Twhere T: TryFromObject,

source§

fn arity() -> RangeInclusive<usize>

The range of positional arguments permitted by the function signature. Read more
source§

fn from_args( vm: &VirtualMachine, args: &mut FuncArgs ) -> Result<T, ArgumentError>

Extracts this item from the next argument(s).
source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<T, U> OverflowingInto<U> for Twhere U: OverflowingFrom<T>,

§

fn overflowing_into(self) -> (U, bool)

§

impl<T, U> RoundingInto<U> for Twhere U: RoundingFrom<T>,

§

fn rounding_into(self, rm: RoundingMode) -> U

source§

impl<T> Same<T> for T

§

type Output = T

Should always be Self
§

impl<T, U> SaturatingInto<U> for Twhere U: SaturatingFrom<T>,

§

fn saturating_into(self) -> U

§

impl<T> ToDebugString for Twhere T: Debug,

§

fn to_debug_string(&self) -> String

Returns the String produced by Ts Debug implementation.

Examples
use malachite_base::strings::ToDebugString;

assert_eq!([1, 2, 3].to_debug_string(), "[1, 2, 3]");
assert_eq!(
    [vec![2, 3], vec![], vec![4]].to_debug_string(),
    "[[2, 3], [], [4]]"
);
assert_eq!(Some(5).to_debug_string(), "Some(5)");
source§

impl<T> ToOwned for Twhere T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T> ToPyResult for Twhere T: ToPyObject,

source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for Twhere V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T, U> WrappingInto<U> for Twhere U: WrappingFrom<T>,

§

fn wrapping_into(self) -> U

source§

impl<T> PyThreadingConstraint for T