devela::_dep::pyo3

Struct PyErr

pub struct PyErr { /* private fields */ }
Available on crate features dep_pyo3 and std only.
Expand description

Represents a Python exception.

To avoid needing access to Python in Into conversions to create PyErr (thus improving compatibility with ? and other Rust errors) this type supports creating exceptions instances in a lazy fashion, where the full Python object for the exception is created only when needed.

Accessing the contained exception in any way, such as with value_bound, get_type_bound, or is_instance_bound will create the full exception object if it was not already created.

Implementations§

§

impl PyErr

pub fn new<T, A>(args: A) -> PyErr
where T: PyTypeInfo, A: PyErrArguments + Send + Sync + 'static,

Creates a new PyErr of type T.

args can be:

  • a tuple: the exception instance will be created using the equivalent to the Python expression T(*tuple)
  • any other value: the exception instance will be created using the equivalent to the Python expression T(value)

This exception instance will be initialized lazily. This avoids the need for the Python GIL to be held, but requires args to be Send and Sync. If args is not Send or Sync, consider using PyErr::from_value_bound instead.

If T does not inherit from BaseException, then a TypeError will be returned.

If calling T’s constructor with args raises an exception, that exception will be returned.

§Examples
use pyo3::prelude::*;
use pyo3::exceptions::PyTypeError;

#[pyfunction]
fn always_throws() -> PyResult<()> {
    Err(PyErr::new::<PyTypeError, _>("Error message"))
}

In most cases, you can use a concrete exception’s constructor instead:

use pyo3::prelude::*;
use pyo3::exceptions::PyTypeError;

#[pyfunction]
fn always_throws() -> PyResult<()> {
    Err(PyTypeError::new_err("Error message"))
}

pub fn from_type<A>(ty: Bound<'_, PyType>, args: A) -> PyErr
where A: PyErrArguments + Send + Sync + 'static,

Constructs a new PyErr from the given Python type and arguments.

ty is the exception type; usually one of the standard exceptions like exceptions::PyRuntimeError.

args is either a tuple or a single value, with the same meaning as in PyErr::new.

If ty does not inherit from BaseException, then a TypeError will be returned.

If calling ty with args raises an exception, that exception will be returned.

pub fn from_type_bound<A>(ty: Bound<'_, PyType>, args: A) -> PyErr
where A: PyErrArguments + Send + Sync + 'static,

👎Deprecated since 0.23.0: renamed to PyErr::from_type

Deprecated name for PyErr::from_type.

pub fn from_value(obj: Bound<'_, PyAny>) -> PyErr

Creates a new PyErr.

If obj is a Python exception object, the PyErr will contain that object.

If obj is a Python exception type object, this is equivalent to PyErr::from_type(obj, ()).

Otherwise, a TypeError is created.

§Examples
use pyo3::prelude::*;
use pyo3::PyTypeInfo;
use pyo3::exceptions::PyTypeError;
use pyo3::types::PyString;

Python::with_gil(|py| {
    // Case #1: Exception object
    let err = PyErr::from_value(PyTypeError::new_err("some type error")
        .value(py).clone().into_any());
    assert_eq!(err.to_string(), "TypeError: some type error");

    // Case #2: Exception type
    let err = PyErr::from_value(PyTypeError::type_object(py).into_any());
    assert_eq!(err.to_string(), "TypeError: ");

    // Case #3: Invalid exception value
    let err = PyErr::from_value(PyString::new(py, "foo").into_any());
    assert_eq!(
        err.to_string(),
        "TypeError: exceptions must derive from BaseException"
    );
});

pub fn from_value_bound(obj: Bound<'_, PyAny>) -> PyErr

👎Deprecated since 0.23.0: renamed to PyErr::from_value

Deprecated name for PyErr::from_value.

pub fn get_type<'py>(&self, py: Python<'py>) -> Bound<'py, PyType>

Returns the type of this exception.

§Examples
use pyo3::{prelude::*, exceptions::PyTypeError, types::PyType};

Python::with_gil(|py| {
    let err: PyErr = PyTypeError::new_err(("some type error",));
    assert!(err.get_type(py).is(&PyType::new::<PyTypeError>(py)));
});

pub fn get_type_bound<'py>(&self, py: Python<'py>) -> Bound<'py, PyType>

👎Deprecated since 0.23.0: renamed to PyErr::get_type

Deprecated name for PyErr::get_type.

pub fn value<'py>(&self, py: Python<'py>) -> &Bound<'py, PyBaseException>

Returns the value of this exception.

§Examples
use pyo3::{exceptions::PyTypeError, PyErr, Python};

Python::with_gil(|py| {
    let err: PyErr = PyTypeError::new_err(("some type error",));
    assert!(err.is_instance_of::<PyTypeError>(py));
    assert_eq!(err.value(py).to_string(), "some type error");
});

pub fn value_bound<'py>(&self, py: Python<'py>) -> &Bound<'py, PyBaseException>

👎Deprecated since 0.23.0: renamed to PyErr::value

Deprecated name for PyErr::value.

pub fn into_value(self, py: Python<'_>) -> Py<PyBaseException>

Consumes self to take ownership of the exception value contained in this error.

pub fn traceback<'py>(&self, py: Python<'py>) -> Option<Bound<'py, PyTraceback>>

Returns the traceback of this exception object.

§Examples
use pyo3::{exceptions::PyTypeError, Python};

Python::with_gil(|py| {
    let err = PyTypeError::new_err(("some type error",));
    assert!(err.traceback(py).is_none());
});

pub fn traceback_bound<'py>( &self, py: Python<'py>, ) -> Option<Bound<'py, PyTraceback>>

👎Deprecated since 0.23.0: renamed to PyErr::traceback

Deprecated name for PyErr::traceback.

pub fn occurred(_: Python<'_>) -> bool

Gets whether an error is present in the Python interpreter’s global state.

pub fn take(py: Python<'_>) -> Option<PyErr>

Takes the current error from the Python interpreter’s global state and clears the global state. If no error is set, returns None.

If the error is a PanicException (which would have originated from a panic in a pyo3 callback) then this function will resume the panic.

Use this function when it is not known if an error should be present. If the error is expected to have been set, for example from PyErr::occurred or by an error return value from a C FFI function, use PyErr::fetch.

pub fn fetch(py: Python<'_>) -> PyErr

Equivalent to PyErr::take, but when no error is set:

  • Panics in debug mode.
  • Returns a SystemError in release mode.

This behavior is consistent with Python’s internal handling of what happens when a C return value indicates an error occurred but the global error state is empty. (A lack of exception should be treated as a bug in the code which returned an error code but did not set an exception.)

Use this function when the error is expected to have been set, for example from PyErr::occurred or by an error return value from a C FFI function.

pub fn new_type<'py>( py: Python<'py>, name: &CStr, doc: Option<&CStr>, base: Option<&Bound<'py, PyType>>, dict: Option<Py<PyAny>>, ) -> Result<Py<PyType>, PyErr>

Creates a new exception type with the given name and docstring.

  • base can be an existing exception type to subclass, or a tuple of classes.
  • dict specifies an optional dictionary of class variables and methods.
  • doc will be the docstring seen by python users.
§Errors

This function returns an error if name is not of the form <module>.<ExceptionName>.

pub fn new_type_bound<'py>( py: Python<'py>, name: &str, doc: Option<&str>, base: Option<&Bound<'py, PyType>>, dict: Option<Py<PyAny>>, ) -> Result<Py<PyType>, PyErr>

👎Deprecated since 0.23.0: renamed to PyErr::new_type

Deprecated name for PyErr::new_type.

pub fn display(&self, py: Python<'_>)

Prints a standard traceback to sys.stderr.

pub fn print(&self, py: Python<'_>)

Calls sys.excepthook and then prints a standard traceback to sys.stderr.

pub fn print_and_set_sys_last_vars(&self, py: Python<'_>)

Calls sys.excepthook and then prints a standard traceback to sys.stderr.

Additionally sets sys.last_{type,value,traceback,exc} attributes to this exception.

pub fn matches<'py, T>( &self, py: Python<'py>, exc: T, ) -> Result<bool, <T as IntoPyObject<'py>>::Error>
where T: IntoPyObject<'py>,

Returns true if the current exception matches the exception in exc.

If exc is a class object, this also returns true when self is an instance of a subclass. If exc is a tuple, all exceptions in the tuple (and recursively in subtuples) are searched for a match.

pub fn is_instance(&self, py: Python<'_>, ty: &Bound<'_, PyAny>) -> bool

Returns true if the current exception is instance of T.

pub fn is_instance_bound(&self, py: Python<'_>, ty: &Bound<'_, PyAny>) -> bool

👎Deprecated since 0.23.0: renamed to PyErr::is_instance

Deprecated name for PyErr::is_instance.

pub fn is_instance_of<T>(&self, py: Python<'_>) -> bool
where T: PyTypeInfo,

Returns true if the current exception is instance of T.

pub fn restore(self, py: Python<'_>)

Writes the error back to the Python interpreter’s global state. This is the opposite of PyErr::fetch().

pub fn write_unraisable(self, py: Python<'_>, obj: Option<&Bound<'_, PyAny>>)

Reports the error as unraisable.

This calls sys.unraisablehook() using the current exception and obj argument.

This method is useful to report errors in situations where there is no good mechanism to report back to the Python land. In Python this is used to indicate errors in background threads or destructors which are protected. In Rust code this is commonly useful when you are calling into a Python callback which might fail, but there is no obvious way to handle this error other than logging it.

Calling this method has the benefit that the error goes back into a standardized callback in Python which for instance allows unittests to ensure that no unraisable error actually happend by hooking sys.unraisablehook.

Example:

Python::with_gil(|py| {
    match failing_function() {
        Err(pyerr) => pyerr.write_unraisable(py, None),
        Ok(..) => { /* do something here */ }
    }
    Ok(())
})

pub fn write_unraisable_bound( self, py: Python<'_>, obj: Option<&Bound<'_, PyAny>>, )

👎Deprecated since 0.23.0: renamed to PyErr::write_unraisable

Deprecated name for PyErr::write_unraisable.

pub fn warn<'py>( py: Python<'py>, category: &Bound<'py, PyAny>, message: &CStr, stacklevel: i32, ) -> Result<(), PyErr>

Issues a warning message.

May return an Err(PyErr) if warnings-as-errors is enabled.

Equivalent to warnings.warn() in Python.

The category should be one of the Warning classes available in pyo3::exceptions, or a subclass. The Python object can be retrieved using Python::get_type_bound().

Example:

Python::with_gil(|py| {
    let user_warning = py.get_type::<pyo3::exceptions::PyUserWarning>();
    PyErr::warn(py, &user_warning, c_str!("I am warning you"), 0)?;
    Ok(())
})

pub fn warn_bound<'py>( py: Python<'py>, category: &Bound<'py, PyAny>, message: &str, stacklevel: i32, ) -> Result<(), PyErr>

👎Deprecated since 0.23.0: renamed to PyErr::warn

Deprecated name for PyErr::warn.

pub fn warn_explicit<'py>( py: Python<'py>, category: &Bound<'py, PyAny>, message: &CStr, filename: &CStr, lineno: i32, module: Option<&CStr>, registry: Option<&Bound<'py, PyAny>>, ) -> Result<(), PyErr>

Issues a warning message, with more control over the warning attributes.

May return a PyErr if warnings-as-errors is enabled.

Equivalent to warnings.warn_explicit() in Python.

The category should be one of the Warning classes available in pyo3::exceptions, or a subclass.

pub fn warn_explicit_bound<'py>( py: Python<'py>, category: &Bound<'py, PyAny>, message: &str, filename: &str, lineno: i32, module: Option<&str>, registry: Option<&Bound<'py, PyAny>>, ) -> Result<(), PyErr>

👎Deprecated since 0.23.0: renamed to PyErr::warn

Deprecated name for PyErr::warn_explicit.

pub fn clone_ref(&self, py: Python<'_>) -> PyErr

Clone the PyErr. This requires the GIL, which is why PyErr does not implement Clone.

§Examples
use pyo3::{exceptions::PyTypeError, PyErr, Python, prelude::PyAnyMethods};
Python::with_gil(|py| {
    let err: PyErr = PyTypeError::new_err(("some type error",));
    let err_clone = err.clone_ref(py);
    assert!(err.get_type(py).is(&err_clone.get_type(py)));
    assert!(err.value(py).is(err_clone.value(py)));
    match err.traceback(py) {
        None => assert!(err_clone.traceback(py).is_none()),
        Some(tb) => assert!(err_clone.traceback(py).unwrap().is(&tb)),
    }
});

pub fn cause(&self, py: Python<'_>) -> Option<PyErr>

Return the cause (either an exception instance, or None, set by raise ... from ...) associated with the exception, as accessible from Python through __cause__.

pub fn set_cause(&self, py: Python<'_>, cause: Option<PyErr>)

Set the cause associated with the exception, pass None to clear it.

Trait Implementations§

§

impl Debug for PyErr

§

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

Formats the value using the given formatter. Read more
§

impl Display for PyErr

§

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

Formats the value using the given formatter. Read more
§

impl Error for PyErr

1.30.0 · Source§

fn source(&self) -> Option<&(dyn Error + 'static)>

Returns the lower-level source of this error, if any. Read more
1.0.0 · Source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · Source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
Source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type-based access to context intended for error reports. Read more
§

impl From<AddrParseError> for PyErr

§

fn from(err: AddrParseError) -> PyErr

Converts to this type from the input type.
§

impl<'py, T> From<Bound<'py, T>> for PyErr
where T: ToPyErr,

§

fn from(err: Bound<'py, T>) -> PyErr

Converts to this type from the input type.
§

impl From<DecodeUtf16Error> for PyErr

§

fn from(err: DecodeUtf16Error) -> PyErr

Converts to this type from the input type.
§

impl From<DowncastError<'_, '_>> for PyErr

Convert DowncastError to Python TypeError.

§

fn from(err: DowncastError<'_, '_>) -> PyErr

Converts to this type from the input type.
§

impl From<DowncastIntoError<'_>> for PyErr

Convert DowncastIntoError to Python TypeError.

§

fn from(err: DowncastIntoError<'_>) -> PyErr

Converts to this type from the input type.
§

impl From<Error> for PyErr

Create PyErr from io::Error (OSError except if the io::Error is wrapping a Python exception, in this case the exception is returned)

§

fn from(err: Error) -> PyErr

Converts to this type from the input type.
§

impl From<FromUtf16Error> for PyErr

§

fn from(err: FromUtf16Error) -> PyErr

Converts to this type from the input type.
§

impl From<FromUtf8Error> for PyErr

§

fn from(err: FromUtf8Error) -> PyErr

Converts to this type from the input type.
§

impl From<Infallible> for PyErr

§

fn from(_: Infallible) -> PyErr

Converts to this type from the input type.
§

impl<W> From<IntoInnerError<W>> for PyErr

§

fn from(err: IntoInnerError<W>) -> PyErr

Converts to this type from the input type.
§

impl From<IntoStringError> for PyErr

§

fn from(err: IntoStringError) -> PyErr

Converts to this type from the input type.
§

impl From<NulError> for PyErr

§

fn from(err: NulError) -> PyErr

Converts to this type from the input type.
§

impl From<ParseBoolError> for PyErr

§

fn from(err: ParseBoolError) -> PyErr

Converts to this type from the input type.
§

impl From<ParseFloatError> for PyErr

§

fn from(err: ParseFloatError) -> PyErr

Converts to this type from the input type.
§

impl From<ParseIntError> for PyErr

§

fn from(err: ParseIntError) -> PyErr

Converts to this type from the input type.
§

impl From<PyBorrowError> for PyErr

§

fn from(other: PyBorrowError) -> PyErr

Converts to this type from the input type.
§

impl From<PyBorrowMutError> for PyErr

§

fn from(other: PyBorrowMutError) -> PyErr

Converts to this type from the input type.
§

impl From<PyErr> for Error

Convert PyErr to io::Error

§

fn from(err: PyErr) -> Error

Converts to this type from the input type.
§

impl From<TryFromIntError> for PyErr

§

fn from(err: TryFromIntError) -> PyErr

Converts to this type from the input type.
§

impl From<TryFromSliceError> for PyErr

§

fn from(err: TryFromSliceError) -> PyErr

Converts to this type from the input type.
§

impl From<Utf8Error> for PyErr

§

fn from(err: Utf8Error) -> PyErr

Converts to this type from the input type.
§

impl IntoPy<Py<PyAny>> for &PyErr

§

fn into_py(self, py: Python<'_>) -> Py<PyAny>

👎Deprecated since 0.23.0: IntoPy is going to be replaced by IntoPyObject. See the migration guide (https://pyo3.rs/v0.23.0/migration) for more information.
Performs the conversion.
§

impl IntoPy<Py<PyAny>> for PyErr

§

fn into_py(self, py: Python<'_>) -> Py<PyAny>

👎Deprecated since 0.23.0: IntoPy is going to be replaced by IntoPyObject. See the migration guide (https://pyo3.rs/v0.23.0/migration) for more information.
Performs the conversion.
§

impl<'py> IntoPyObject<'py> for &PyErr

§

type Target = PyBaseException

The Python output type
§

type Output = Bound<'py, <&PyErr as IntoPyObject<'py>>::Target>

The smart pointer type to use. Read more
§

type Error = Infallible

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

fn into_pyobject( self, py: Python<'py>, ) -> Result<<&PyErr as IntoPyObject<'py>>::Output, <&PyErr as IntoPyObject<'py>>::Error>

Performs the conversion.
§

impl<'py> IntoPyObject<'py> for PyErr

§

type Target = PyBaseException

The Python output type
§

type Output = Bound<'py, <PyErr as IntoPyObject<'py>>::Target>

The smart pointer type to use. Read more
§

type Error = Infallible

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

fn into_pyobject( self, py: Python<'py>, ) -> Result<<PyErr as IntoPyObject<'py>>::Output, <PyErr as IntoPyObject<'py>>::Error>

Performs the conversion.
§

impl ToPyObject for PyErr

§

fn to_object(&self, py: Python<'_>) -> Py<PyAny>

👎Deprecated since 0.23.0: ToPyObject is going to be replaced by IntoPyObject. See the migration guide (https://pyo3.rs/v0.23.0/migration) for more information.
Converts self into a Python object.

Auto Trait Implementations§

§

impl !Freeze for PyErr

§

impl !RefUnwindSafe for PyErr

§

impl Send for PyErr

§

impl Sync for PyErr

§

impl Unpin for PyErr

§

impl !UnwindSafe for PyErr

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
§

impl<T> ArchivePointee for T

§

type ArchivedMetadata = ()

The archived version of the pointer metadata for this type.
§

fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata

Converts some archived metadata to the pointer metadata for itself.
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> ByteSized for T

Source§

const BYTE_ALIGN: usize = _

The alignment of this type in bytes.
Source§

const BYTE_SIZE: usize = _

The size of this type in bytes.
Source§

fn byte_align(&self) -> usize

Returns the alignment of this type in bytes.
Source§

fn byte_size(&self) -> usize

Returns the size of this type in bytes. Read more
Source§

fn ptr_size_ratio(&self) -> [usize; 2]

Returns the size ratio between Ptr::BYTES and BYTE_SIZE. Read more
Source§

impl<T, R> Chain<R> for T
where T: ?Sized,

Source§

fn chain<F>(self, f: F) -> R
where F: FnOnce(Self) -> R, Self: Sized,

Chain a function which takes the parameter by value.
Source§

fn chain_ref<F>(&self, f: F) -> R
where F: FnOnce(&Self) -> R,

Chain a function which takes the parameter by shared reference.
Source§

fn chain_mut<F>(&mut self, f: F) -> R
where F: FnOnce(&mut Self) -> R,

Chain a function which takes the parameter by exclusive reference.
Source§

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

Source§

fn type_id() -> TypeId

Returns the TypeId of Self. Read more
Source§

fn type_of(&self) -> TypeId

Returns the TypeId of self. Read more
Source§

fn type_name(&self) -> &'static str

Returns the type name of self. Read more
Source§

fn type_is<T: 'static>(&self) -> bool

Returns true if Self is of type T. Read more
Source§

fn as_any_ref(&self) -> &dyn Any
where Self: Sized,

Upcasts &self as &dyn Any. Read more
Source§

fn as_any_mut(&mut self) -> &mut dyn Any
where Self: Sized,

Upcasts &mut self as &mut dyn Any. Read more
Source§

fn as_any_box(self: Box<Self>) -> Box<dyn Any>
where Self: Sized,

Upcasts Box<self> as Box<dyn Any>. Read more
Source§

fn downcast_ref<T: 'static>(&self) -> Option<&T>

Available on crate feature unsafe_layout only.
Returns some shared reference to the inner value if it is of type T. Read more
Source§

fn downcast_mut<T: 'static>(&mut self) -> Option<&mut T>

Available on crate feature unsafe_layout only.
Returns some exclusive reference to the inner value if it is of type T. Read more
Source§

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

Source§

const NEEDS_DROP: bool = _

Know whether dropping values of this type matters, in compile-time.
Source§

fn mem_align_of<T>() -> usize

Returns the minimum alignment of the type in bytes. Read more
Source§

fn mem_align_of_val(&self) -> usize

Returns the alignment of the pointed-to value in bytes. Read more
Source§

fn mem_size_of<T>() -> usize

Returns the size of a type in bytes. Read more
Source§

fn mem_size_of_val(&self) -> usize

Returns the size of the pointed-to value in bytes. Read more
Source§

fn mem_copy(&self) -> Self
where Self: Copy,

Bitwise-copies a value. Read more
Source§

fn mem_needs_drop(&self) -> bool

Returns true if dropping values of this type matters. Read more
Source§

fn mem_drop(self)
where Self: Sized,

Drops self by running its destructor. Read more
Source§

fn mem_forget(self)
where Self: Sized,

Forgets about self without running its destructor. Read more
Source§

fn mem_replace(&mut self, other: Self) -> Self
where Self: Sized,

Replaces self with other, returning the previous value of self. Read more
Source§

fn mem_take(&mut self) -> Self
where Self: Default,

Replaces self with its default value, returning the previous value of self. Read more
Source§

fn mem_swap(&mut self, other: &mut Self)
where Self: Sized,

Swaps the value of self and other without deinitializing either one. Read more
Source§

unsafe fn mem_zeroed<T>() -> T

Available on crate feature unsafe_layout only.
Returns the value of type T represented by the all-zero byte-pattern. Read more
Source§

unsafe fn mem_transmute_copy<Src, Dst>(src: &Src) -> Dst

Available on crate feature unsafe_layout only.
Returns the value of type T represented by the all-zero byte-pattern. Read more
Source§

fn mem_as_bytes(&self) -> &[u8]
where Self: Sync + Unpin,

Available on crate feature unsafe_slice only.
View a Sync + Unpin self as &[u8]. Read more
Source§

fn mem_as_bytes_mut(&mut self) -> &mut [u8]
where Self: Sync + Unpin,

Available on crate feature unsafe_slice only.
View a Sync + Unpin self as &mut [u8]. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<S> FromSample<S> for S

§

fn from_sample_(s: S) -> S

Source§

impl<T> Hook for T

Source§

fn hook_ref<F>(self, f: F) -> Self
where F: FnOnce(&Self),

Applies a function which takes the parameter by shared reference, and then returns the (possibly) modified owned value. Read more
Source§

fn hook_mut<F>(self, f: F) -> Self
where F: FnOnce(&mut Self),

Applies a function which takes the parameter by exclusive reference, and then returns the (possibly) modified owned value. Read more
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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
§

impl<'py, T> IntoPyObjectExt<'py> for T
where T: IntoPyObject<'py>,

§

fn into_bound_py_any(self, py: Python<'py>) -> Result<Bound<'py, PyAny>, PyErr>

Converts self into an owned Python object, dropping type information.
§

fn into_py_any(self, py: Python<'py>) -> Result<Py<PyAny>, PyErr>

Converts 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>

Converts self into a Python object. Read more
§

impl<F, T> IntoSample<T> for F
where T: FromSample<F>,

§

fn into_sample(self) -> T

§

impl<T> LayoutRaw for T

§

fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>

Returns the layout of the type.
§

impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
where T: SharedNiching<N1, N2>, N1: Niching<T>, N2: Niching<T>,

§

unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool

Returns whether the given value has been niched. Read more
§

fn resolve_niched(out: Place<NichedOption<T, N1>>)

Writes data to out indicating that a T is niched.
§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
§

impl<T> Pointee for T

§

type Metadata = ()

The metadata type for pointers and references to this type.
§

impl<T> PyErrArguments for T
where T: for<'py> IntoPyObject<'py> + Send + Sync,

§

fn arguments(self, py: Python<'_>) -> Py<PyAny>

Arguments for exception
§

impl<T, U> ToSample<U> for T
where U: FromSample<T>,

§

fn to_sample_(self) -> U

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

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
§

impl<S, T> Duplex<S> for T
where T: FromSample<S> + ToSample<S>,

§

impl<T> Ungil for T
where T: Send,