Struct PyRef

Source
pub struct PyRef<T: PyObjectPayload> { /* private fields */ }
Expand description

A reference to a Python object.

Note that a PyRef<T> can only deref to a shared / immutable reference. It is the payload type’s responsibility to handle (possibly concurrent) mutability with locks or concurrent data structures if required.

A PyRef<T> can be directly returned from a built-in function to handle situations (such as when implementing in-place methods such as __iadd__) where a reference to the same object must be returned.

Implementations§

Source§

impl PyRef<PyStr>

Source

pub fn concat_in_place(&mut self, other: &str, vm: &VirtualMachine)

Source§

impl PyRef<PyTraceback>

Source

pub fn iter(&self) -> impl Iterator<Item = PyRef<PyTraceback>>

Source§

impl<T: PyObjectPayload> PyRef<T>

Source

pub fn new_ref(payload: T, typ: PyTypeRef, dict: Option<PyDictRef>) -> Self

Source

pub fn leak(pyref: Self) -> &'static Py<T>

Source§

impl<T: PyPayload> PyRef<T>

Source

pub fn into_exact_or( self, ctx: &Context, f: impl FnOnce(Self) -> PyRefExact<T>, ) -> PyRefExact<T>

Source§

impl PyRef<VecBuffer>

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

Source

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

Trait Implementations§

Source§

impl<T> AsRef<Py<T>> for PyRef<T>
where T: PyObjectPayload,

Source§

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

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

impl<T> AsRef<PyObject> for PyRef<T>
where T: PyObjectPayload,

Source§

fn as_ref(&self) -> &PyObject

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

impl<T> Borrow<Py<T>> for PyRef<T>
where T: PyObjectPayload,

Source§

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

Immutably borrows from an owned value. Read more
Source§

impl<T> Borrow<PyObject> for PyRef<T>
where T: PyObjectPayload,

Source§

fn borrow(&self) -> &PyObject

Immutably borrows from an owned value. Read more
Source§

impl<T: PyObjectPayload> Clone for PyRef<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: PyObjectPayload> Debug for PyRef<T>

Source§

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

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

impl<T> Deref for PyRef<T>
where T: PyObjectPayload,

Source§

type Target = Py<T>

The resulting type after dereferencing.
Source§

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

Dereferences the value.
Source§

impl<T> Display for PyRef<T>

Source§

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

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

impl<T: PyObjectPayload> Drop for PyRef<T>

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

impl From<PyRef<PyBaseException>> for ArgumentError

Source§

fn from(ex: PyBaseExceptionRef) -> Self

Converts to this type from the input type.
Source§

impl From<PyRef<PyDict>> for PyMappingProxy

Source§

fn from(dict: PyDictRef) -> Self

Converts to this type from the input type.
Source§

impl From<PyRef<PyType>> for PyMappingProxy

Source§

fn from(dict: PyTypeRef) -> Self

Converts to this type from the input type.
Source§

impl<T: PyObjectPayload> From<PyRef<T>> for PyAtomicRef<T>

Source§

fn from(pyref: PyRef<T>) -> Self

Converts to this type from the input type.
Source§

impl<T> From<PyRef<T>> for PyObjectRef
where T: PyObjectPayload,

Source§

fn from(value: PyRef<T>) -> Self

Converts to this type from the input type.
Source§

impl<T> Hash for PyRef<T>
where T: Hash + PyObjectPayload,

Source§

fn hash<H: Hasher>(&self, state: &mut H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl<T> PartialEq for PyRef<T>

Source§

fn eq(&self, other: &Self) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<T: PyObjectPayload> ToPyObject for PyRef<T>

Source§

impl<T: PyPayload> TransmuteFromObject for PyRef<T>

Source§

impl<T: PyObjectPayload> Traverse for PyRef<T>

Source§

fn traverse(&self, traverse_fn: &mut TraverseFn<'_>)

impl traverse() with caution! Following those guideline so traverse doesn’t cause memory error!: Read more
Source§

impl<T> TryFromObject for PyRef<T>
where T: PyPayload,

Source§

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

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

impl<T> Eq for PyRef<T>
where T: Eq + PyObjectPayload,

Auto Trait Implementations§

§

impl<T> Freeze for PyRef<T>

§

impl<T> !RefUnwindSafe for PyRef<T>

§

impl<T> !Send for PyRef<T>

§

impl<T> !Sync for PyRef<T>

§

impl<T> Unpin for PyRef<T>

§

impl<T> !UnwindSafe for PyRef<T>

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn as_object(&self) -> &PyObject

Source§

fn get_id(&self) -> usize

Source§

fn is<T>(&self, other: &T) -> bool
where 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 T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

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

Source§

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

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

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

Source§

fn exact_from(value: T) -> U

Source§

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

Source§

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 T
where T: TryFromObject,

Source§

type Inner = T

Source§

fn from_inner(x: T) -> T

Source§

impl<T> FromArgs for T
where 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 T
where 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.

Source§

impl<T> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
Source§

impl<T> IntoObject for T
where T: Into<PyObjectRef>,

Source§

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

Source§

impl<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
Source§

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

Source§

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

Source§

impl<T> ToDebugString for T
where T: Debug,

Source§

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> ToHex for T
where T: AsRef<[u8]>,

Source§

fn encode_hex<U>(&self) -> U
where U: FromIterator<char>,

Encode the hex strict representing self into the result. Lower case letters are used (e.g. f9b4ca)
Source§

fn encode_hex_upper<U>(&self) -> U
where U: FromIterator<char>,

Encode the hex strict representing self into the result. Upper case letters are used (e.g. F9B4CA)
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

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 T
where T: ToPyObject,

Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

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

Source§

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 T
where U: TryFrom<T>,

Source§

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.
Source§

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

Source§

fn vzip(self) -> V

Source§

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

Source§

fn wrapping_into(self) -> U

Source§

impl<T> PyThreadingConstraint for T

Morty Proxy This is a proxified and sanitized view of the page, visit original site.