diff --git a/numpy/all.html b/numpy/all.html index 99cc7b680..5fd5021c6 100644 --- a/numpy/all.html +++ b/numpy/all.html @@ -1,2 +1,2 @@ List of all items in this crate -

List of all items

Structs

Enums

Traits

Macros

Functions

Type Aliases

Statics

Constants

\ No newline at end of file +

List of all items

Structs

Enums

Traits

Macros

Functions

Type Aliases

Statics

Constants

\ No newline at end of file diff --git a/numpy/array/struct.PyArray.html b/numpy/array/struct.PyArray.html index 1e0d1c1d5..8813d98c3 100644 --- a/numpy/array/struct.PyArray.html +++ b/numpy/array/struct.PyArray.html @@ -539,13 +539,13 @@
Example
source

pub fn dtype(&self) -> &PyArrayDescr

Returns the dtype of the array.

See also ndarray.dtype and PyArray_DTYPE.

Example
-
use numpy::{dtype, PyArray};
+
use numpy::{dtype_bound, PyArray};
 use pyo3::Python;
 
 Python::with_gil(|py| {
    let array = PyArray::from_vec(py, vec![1_i32, 2, 3]);
 
-   assert!(array.dtype().is_equiv_to(dtype::<i32>(py)));
+   assert!(array.dtype().is_equiv_to(dtype_bound::<i32>(py).as_gil_ref()));
 });
source

pub fn is_contiguous(&self) -> bool

Returns true if the internal data of the array is contiguous, indepedently of whether C-style/row-major or Fortran-style/column-major.

@@ -1016,7 +1016,7 @@
Safety
of the pointer or decrease the reference count (e.g. with pyo3::ffi::Py_DecRef).

pub fn py_super(&self) -> Result<&PySuper, PyErr>

Return a proxy object that delegates method calls to a parent or sibling class of type.

This is equivalent to the Python expression super()

-

Trait Implementations§

source§

impl<T, D> AsPyPointer for PyArray<T, D>

source§

fn as_ptr(&self) -> *mut PyObject

Returns the underlying FFI pointer as a borrowed pointer.
source§

impl<T, D> AsRef<PyAny> for PyArray<T, D>

source§

fn as_ref(&self) -> &PyAny

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

impl<T, D> Debug for PyArray<T, D>

source§

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

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

impl<T, D> Deref for PyArray<T, D>

§

type Target = PyUntypedArray

The resulting type after dereferencing.
source§

fn deref(&self) -> &Self::Target

Dereferences the value.
source§

impl<T, D> Display for PyArray<T, D>

source§

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

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

impl<'a, T, D> From<&'a PyArray<T, D>> for &'a PyAny

source§

fn from(ob: &'a PyArray<T, D>) -> Self

Converts to this type from the input type.
source§

impl<T, D> From<&PyArray<T, D>> for Py<PyArray<T, D>>

source§

fn from(other: &PyArray<T, D>) -> Self

Converts to this type from the input type.
source§

impl<'py, T: Element, D: Dimension> FromPyObject<'py> for &'py PyArray<T, D>

source§

fn extract_bound(ob: &Bound<'py, PyAny>) -> PyResult<Self>

Extracts Self from the bound smart pointer obj. Read more
§

fn extract(ob: &'py PyAny) -> Result<Self, PyErr>

Extracts Self from the source GIL Ref obj. Read more
source§

impl<T, D> IntoPy<Py<PyAny>> for PyArray<T, D>

source§

fn into_py<'py>(self, py: Python<'py>) -> PyObject

Performs the conversion.
source§

impl<T, D> IntoPy<Py<PyArray<T, D>>> for &PyArray<T, D>

source§

fn into_py<'py>(self, py: Python<'py>) -> Py<PyArray<T, D>>

Performs the conversion.
source§

impl<T, D> PyNativeType for PyArray<T, D>

§

type AsRefSource = PyArray<T, D>

The form of this which is stored inside a Py<T> smart pointer.
§

fn as_borrowed(&self) -> Borrowed<'_, '_, Self::AsRefSource>

Cast &self to a Borrowed smart pointer. Read more
§

fn py(&self) -> Python<'_>

Returns a GIL marker constrained to the lifetime of this type.
§

unsafe fn unchecked_downcast(obj: &PyAny) -> &Self

Cast &PyAny to &Self without no type checking. Read more
source§

impl<T: Element, D: Dimension> PyTypeInfo for PyArray<T, D>

source§

const NAME: &'static str = "PyArray<T, D>"

Class name.
source§

const MODULE: Option<&'static str> = _

Module name, if any.
source§

fn type_object_raw<'py>(py: Python<'py>) -> *mut PyTypeObject

Returns the PyTypeObject instance for this type.
source§

fn is_type_of_bound(ob: &Bound<'_, PyAny>) -> bool

Checks if object is an instance of this type or a subclass of this type.
§

fn type_object(py: Python<'_>) -> &PyType

Returns the safe abstraction over the type object.
§

fn type_object_bound(py: Python<'_>) -> Bound<'_, PyType>

Returns the safe abstraction over the type object.
§

fn is_type_of(object: &PyAny) -> bool

Checks if object is an instance of this type or a subclass of this type.
§

fn is_exact_type_of(object: &PyAny) -> bool

Checks if object is an instance of this type.
§

fn is_exact_type_of_bound(object: &Bound<'_, PyAny>) -> bool

Checks if object is an instance of this type.
source§

impl<T, D> ToPyObject for PyArray<T, D>

source§

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

Converts self into a Python object.
source§

impl<T, D> DerefToPyAny for PyArray<T, D>

Auto Trait Implementations§

§

impl<T, D> !RefUnwindSafe for PyArray<T, D>

§

impl<T, D> !Send for PyArray<T, D>

§

impl<T, D> !Sync for PyArray<T, D>

§

impl<T, D> Unpin for PyArray<T, D>
where +

Trait Implementations§

source§

impl<T, D> AsPyPointer for PyArray<T, D>

source§

fn as_ptr(&self) -> *mut PyObject

Returns the underlying FFI pointer as a borrowed pointer.
source§

impl<T, D> AsRef<PyAny> for PyArray<T, D>

source§

fn as_ref(&self) -> &PyAny

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

impl<T, D> Debug for PyArray<T, D>

source§

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

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

impl<T, D> Deref for PyArray<T, D>

§

type Target = PyUntypedArray

The resulting type after dereferencing.
source§

fn deref(&self) -> &Self::Target

Dereferences the value.
source§

impl<T, D> Display for PyArray<T, D>

source§

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

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

impl<'a, T, D> From<&'a PyArray<T, D>> for &'a PyAny

source§

fn from(ob: &'a PyArray<T, D>) -> Self

Converts to this type from the input type.
source§

impl<T, D> From<&PyArray<T, D>> for Py<PyArray<T, D>>

source§

fn from(other: &PyArray<T, D>) -> Self

Converts to this type from the input type.
source§

impl<'py, T: Element, D: Dimension> FromPyObject<'py> for &'py PyArray<T, D>

source§

fn extract_bound(ob: &Bound<'py, PyAny>) -> PyResult<Self>

Extracts Self from the bound smart pointer obj. Read more
§

fn extract(ob: &'py PyAny) -> Result<Self, PyErr>

Extracts Self from the source GIL Ref obj. Read more
source§

impl<T, D> IntoPy<Py<PyAny>> for PyArray<T, D>

source§

fn into_py<'py>(self, py: Python<'py>) -> PyObject

Performs the conversion.
source§

impl<T, D> IntoPy<Py<PyArray<T, D>>> for &PyArray<T, D>

source§

fn into_py<'py>(self, py: Python<'py>) -> Py<PyArray<T, D>>

Performs the conversion.
source§

impl<T, D> PyNativeType for PyArray<T, D>

§

type AsRefSource = PyArray<T, D>

The form of this which is stored inside a Py<T> smart pointer.
§

fn as_borrowed(&self) -> Borrowed<'_, '_, Self::AsRefSource>

Cast &self to a Borrowed smart pointer. Read more
§

fn py(&self) -> Python<'_>

Returns a GIL marker constrained to the lifetime of this type.
§

unsafe fn unchecked_downcast(obj: &PyAny) -> &Self

Cast &PyAny to &Self without no type checking. Read more
source§

impl<T: Element, D: Dimension> PyTypeInfo for PyArray<T, D>

source§

const NAME: &'static str = "PyArray<T, D>"

Class name.
source§

const MODULE: Option<&'static str> = _

Module name, if any.
source§

fn type_object_raw<'py>(py: Python<'py>) -> *mut PyTypeObject

Returns the PyTypeObject instance for this type.
source§

fn is_type_of_bound(ob: &Bound<'_, PyAny>) -> bool

Checks if object is an instance of this type or a subclass of this type.
§

fn type_object(py: Python<'_>) -> &PyType

Returns the safe abstraction over the type object.
§

fn type_object_bound(py: Python<'_>) -> Bound<'_, PyType>

Returns the safe abstraction over the type object.
§

fn is_type_of(object: &PyAny) -> bool

Checks if object is an instance of this type or a subclass of this type.
§

fn is_exact_type_of(object: &PyAny) -> bool

Checks if object is an instance of this type.
§

fn is_exact_type_of_bound(object: &Bound<'_, PyAny>) -> bool

Checks if object is an instance of this type.
source§

impl<T, D> ToPyObject for PyArray<T, D>

source§

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

Converts self into a Python object.
source§

impl<T, D> DerefToPyAny for PyArray<T, D>

Auto Trait Implementations§

§

impl<T, D> !RefUnwindSafe for PyArray<T, D>

§

impl<T, D> !Send for PyArray<T, D>

§

impl<T, D> !Sync for PyArray<T, D>

§

impl<T, D> Unpin for PyArray<T, D>
where D: Unpin, T: Unpin,

§

impl<T, D> UnwindSafe for PyArray<T, D>
where D: UnwindSafe, diff --git a/numpy/borrow/struct.PyReadonlyArray.html b/numpy/borrow/struct.PyReadonlyArray.html index 99a18b116..3e76cae04 100644 --- a/numpy/borrow/struct.PyReadonlyArray.html +++ b/numpy/borrow/struct.PyReadonlyArray.html @@ -284,13 +284,13 @@
Example
source

pub fn dtype(&self) -> &PyArrayDescr

Returns the dtype of the array.

See also ndarray.dtype and PyArray_DTYPE.

Example
-
use numpy::{dtype, PyArray};
+
use numpy::{dtype_bound, PyArray};
 use pyo3::Python;
 
 Python::with_gil(|py| {
    let array = PyArray::from_vec(py, vec![1_i32, 2, 3]);
 
-   assert!(array.dtype().is_equiv_to(dtype::<i32>(py)));
+   assert!(array.dtype().is_equiv_to(dtype_bound::<i32>(py).as_gil_ref()));
 });
source

pub fn is_contiguous(&self) -> bool

Returns true if the internal data of the array is contiguous, indepedently of whether C-style/row-major or Fortran-style/column-major.

diff --git a/numpy/borrow/struct.PyReadwriteArray.html b/numpy/borrow/struct.PyReadwriteArray.html index e04f629e1..64b209823 100644 --- a/numpy/borrow/struct.PyReadwriteArray.html +++ b/numpy/borrow/struct.PyReadwriteArray.html @@ -316,13 +316,13 @@
Example
source

pub fn dtype(&self) -> &PyArrayDescr

Returns the dtype of the array.

See also ndarray.dtype and PyArray_DTYPE.

Example
-
use numpy::{dtype, PyArray};
+
use numpy::{dtype_bound, PyArray};
 use pyo3::Python;
 
 Python::with_gil(|py| {
    let array = PyArray::from_vec(py, vec![1_i32, 2, 3]);
 
-   assert!(array.dtype().is_equiv_to(dtype::<i32>(py)));
+   assert!(array.dtype().is_equiv_to(dtype_bound::<i32>(py).as_gil_ref()));
 });
source

pub fn is_contiguous(&self) -> bool

Returns true if the internal data of the array is contiguous, indepedently of whether C-style/row-major or Fortran-style/column-major.

diff --git a/numpy/datetime/struct.Datetime.html b/numpy/datetime/struct.Datetime.html index da2bac25e..ee4f39ae9 100644 --- a/numpy/datetime/struct.Datetime.html +++ b/numpy/datetime/struct.Datetime.html @@ -1,6 +1,6 @@ Datetime in numpy::datetime - Rust

Struct numpy::datetime::Datetime

source ·
pub struct Datetime<U: Unit>(/* private fields */);
Expand description

Corresponds to the datetime64 scalar type

-

Trait Implementations§

source§

impl<U: Clone + Unit> Clone for Datetime<U>

source§

fn clone(&self) -> Datetime<U>

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<U: Unit> Debug for Datetime<U>

source§

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

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

impl<U: Unit> Element for Datetime<U>

source§

const IS_COPY: bool = true

Flag that indicates whether this type is trivially copyable. Read more
source§

fn get_dtype<'py>(py: Python<'py>) -> &'py PyArrayDescr

Returns the associated type descriptor (“dtype”) for the given element type.
source§

impl<U: Unit> From<Datetime<U>> for i64

source§

fn from(val: Datetime<U>) -> Self

Converts to this type from the input type.
source§

impl<U: Unit> From<i64> for Datetime<U>

source§

fn from(val: i64) -> Self

Converts to this type from the input type.
source§

impl<U: Hash + Unit> Hash for Datetime<U>

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 +

Trait Implementations§

source§

impl<U: Clone + Unit> Clone for Datetime<U>

source§

fn clone(&self) -> Datetime<U>

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<U: Unit> Debug for Datetime<U>

source§

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

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

impl<U: Unit> Element for Datetime<U>

source§

const IS_COPY: bool = true

Flag that indicates whether this type is trivially copyable. Read more
source§

fn get_dtype_bound(py: Python<'_>) -> Bound<'_, PyArrayDescr>

Returns the associated type descriptor (“dtype”) for the given element type.
source§

fn get_dtype<'py>(py: Python<'py>) -> &'py PyArrayDescr

👎Deprecated since 0.21.0: This will be replaced by get_dtype_bound in the future.
Returns the associated type descriptor (“dtype”) for the given element type.
source§

impl<U: Unit> From<Datetime<U>> for i64

source§

fn from(val: Datetime<U>) -> Self

Converts to this type from the input type.
source§

impl<U: Unit> From<i64> for Datetime<U>

source§

fn from(val: i64) -> Self

Converts to this type from the input type.
source§

impl<U: Hash + Unit> Hash for Datetime<U>

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<U: Ord + Unit> Ord for Datetime<U>

source§

fn cmp(&self, other: &Datetime<U>) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where diff --git a/numpy/datetime/struct.Timedelta.html b/numpy/datetime/struct.Timedelta.html index 24cb8cbcb..63bbccaab 100644 --- a/numpy/datetime/struct.Timedelta.html +++ b/numpy/datetime/struct.Timedelta.html @@ -1,6 +1,6 @@ Timedelta in numpy::datetime - Rust

Struct numpy::datetime::Timedelta

source ·
pub struct Timedelta<U: Unit>(/* private fields */);
Expand description

Corresponds to the [timedelta64][scalars-datetime64] scalar type

-

Trait Implementations§

source§

impl<U: Clone + Unit> Clone for Timedelta<U>

source§

fn clone(&self) -> Timedelta<U>

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<U: Unit> Debug for Timedelta<U>

source§

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

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

impl<U: Unit> Element for Timedelta<U>

source§

const IS_COPY: bool = true

Flag that indicates whether this type is trivially copyable. Read more
source§

fn get_dtype<'py>(py: Python<'py>) -> &'py PyArrayDescr

Returns the associated type descriptor (“dtype”) for the given element type.
source§

impl<U: Unit> From<Timedelta<U>> for i64

source§

fn from(val: Timedelta<U>) -> Self

Converts to this type from the input type.
source§

impl<U: Unit> From<i64> for Timedelta<U>

source§

fn from(val: i64) -> Self

Converts to this type from the input type.
source§

impl<U: Hash + Unit> Hash for Timedelta<U>

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 +

Trait Implementations§

source§

impl<U: Clone + Unit> Clone for Timedelta<U>

source§

fn clone(&self) -> Timedelta<U>

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<U: Unit> Debug for Timedelta<U>

source§

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

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

impl<U: Unit> Element for Timedelta<U>

source§

const IS_COPY: bool = true

Flag that indicates whether this type is trivially copyable. Read more
source§

fn get_dtype_bound(py: Python<'_>) -> Bound<'_, PyArrayDescr>

Returns the associated type descriptor (“dtype”) for the given element type.
source§

fn get_dtype<'py>(py: Python<'py>) -> &'py PyArrayDescr

👎Deprecated since 0.21.0: This will be replaced by get_dtype_bound in the future.
Returns the associated type descriptor (“dtype”) for the given element type.
source§

impl<U: Unit> From<Timedelta<U>> for i64

source§

fn from(val: Timedelta<U>) -> Self

Converts to this type from the input type.
source§

impl<U: Unit> From<i64> for Timedelta<U>

source§

fn from(val: i64) -> Self

Converts to this type from the input type.
source§

impl<U: Hash + Unit> Hash for Timedelta<U>

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<U: Ord + Unit> Ord for Timedelta<U>

source§

fn cmp(&self, other: &Timedelta<U>) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where diff --git a/numpy/dtype/fn.dtype_bound.html b/numpy/dtype/fn.dtype_bound.html new file mode 100644 index 000000000..2bd42765e --- /dev/null +++ b/numpy/dtype/fn.dtype_bound.html @@ -0,0 +1,11 @@ + + + + + Redirection + + +

Redirecting to ../../numpy/fn.dtype_bound.html...

+ + + \ No newline at end of file diff --git a/numpy/dtype/trait.PyArrayDescrMethods.html b/numpy/dtype/trait.PyArrayDescrMethods.html new file mode 100644 index 000000000..38cd1819a --- /dev/null +++ b/numpy/dtype/trait.PyArrayDescrMethods.html @@ -0,0 +1,11 @@ + + + + + Redirection + + +

Redirecting to ../../numpy/trait.PyArrayDescrMethods.html...

+ + + \ No newline at end of file diff --git a/numpy/enum.BorrowError.html b/numpy/enum.BorrowError.html index 71d114e3b..337d4ae6a 100644 --- a/numpy/enum.BorrowError.html +++ b/numpy/enum.BorrowError.html @@ -1,11 +1,11 @@ BorrowError in numpy - Rust -

Enum numpy::BorrowError

source ·
#[non_exhaustive]
pub enum BorrowError { +

Enum numpy::BorrowError

source ·
#[non_exhaustive]
pub enum BorrowError { AlreadyBorrowed, NotWriteable, }
Expand description

Inidcates why borrowing an array failed.

Variants (Non-exhaustive)§

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

AlreadyBorrowed

The given array is already borrowed

§

NotWriteable

The given array is not writeable

-

Trait Implementations§

source§

impl Debug for BorrowError

source§

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

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

impl Display for BorrowError

source§

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

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

impl Error for BorrowError

1.30.0 · source§

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

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

impl From<BorrowError> for PyErr

source§

fn from(err: BorrowError) -> PyErr

Converts to this type from the input type.
source§

impl PyErrArguments for BorrowError

source§

fn arguments<'py>(self, py: Python<'py>) -> PyObject

Arguments for exception

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

Trait Implementations§

source§

impl Debug for BorrowError

source§

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

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

impl Display for BorrowError

source§

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

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

impl Error for BorrowError

1.30.0 · source§

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

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

impl From<BorrowError> for PyErr

source§

fn from(err: BorrowError) -> PyErr

Converts to this type from the input type.
source§

impl PyErrArguments for BorrowError

source§

fn arguments<'py>(self, py: Python<'py>) -> PyObject

Arguments for exception

Auto Trait Implementations§

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> 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> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/numpy/fn.dtype.html b/numpy/fn.dtype.html index 686921160..bee07dae4 100644 --- a/numpy/fn.dtype.html +++ b/numpy/fn.dtype.html @@ -1,3 +1,3 @@ dtype in numpy - Rust -

Function numpy::dtype

source ·
pub fn dtype<'py, T: Element>(py: Python<'py>) -> &'py PyArrayDescr
Expand description

Returns the type descriptor (“dtype”) for a registered type.

+

Function numpy::dtype

source ·
pub fn dtype<'py, T: Element>(py: Python<'py>) -> &'py PyArrayDescr
👎Deprecated since 0.21.0: This will be replaced by dtype_bound in the future.
Expand description

Returns the type descriptor (“dtype”) for a registered type.

\ No newline at end of file diff --git a/numpy/fn.dtype_bound.html b/numpy/fn.dtype_bound.html new file mode 100644 index 000000000..3168e7e3f --- /dev/null +++ b/numpy/fn.dtype_bound.html @@ -0,0 +1,3 @@ +dtype_bound in numpy - Rust +

Function numpy::dtype_bound

source ·
pub fn dtype_bound<'py, T: Element>(py: Python<'py>) -> Bound<'py, PyArrayDescr>
Expand description

Returns the type descriptor (“dtype”) for a registered type.

+
\ No newline at end of file diff --git a/numpy/index.html b/numpy/index.html index c8882d324..b13783e97 100644 --- a/numpy/index.html +++ b/numpy/index.html @@ -1,6 +1,6 @@ numpy - Rust -

Crate numpy

source ·
Expand description

This crate provides Rust interfaces for NumPy C APIs, +

Crate numpy

source ·
Expand description

This crate provides Rust interfaces for NumPy C APIs, especially for the ndarray class.

It uses [pyo3] for Rust bindings to CPython, and uses ndarray as the Rust matrix library.

@@ -55,4 +55,4 @@

Example

); });

Re-exports

Modules

  • Safe interface for NumPy’s N-dimensional arrays
  • Types to safely create references into NumPy arrays
  • Defines conversion traits between Rust types and NumPy data types.
  • Support datetimes and timedeltas
  • Low-Level bindings for NumPy C API.

Macros

  • Create an Array with one, two or -three dimensions.
  • Return the Einstein summation convention of given tensors.
  • Create a PyArray with one, two or three dimensions.

Structs

Enums

Traits

Functions

  • Create a one-dimensional index
  • Create a two-dimensional index
  • Create a three-dimensional index
  • Create a four-dimensional index
  • Create a five-dimensional index
  • Create a six-dimensional index
  • Create a dynamic-dimensional index
  • Return the dot product of two arrays.
  • Returns the type descriptor (“dtype”) for a registered type.
  • Return the Einstein summation convention of given tensors.
  • Return the inner product of two arrays.

Type Aliases

  • one-dimensional
  • two-dimensional
  • three-dimensional
  • four-dimensional
  • five-dimensional
  • six-dimensional
  • dynamic-dimensional
  • Receiver for zero-dimensional arrays or array-like types.
  • Receiver for one-dimensional arrays or array-like types.
  • Receiver for two-dimensional arrays or array-like types.
  • Receiver for three-dimensional arrays or array-like types.
  • Receiver for four-dimensional arrays or array-like types.
  • Receiver for five-dimensional arrays or array-like types.
  • Receiver for six-dimensional arrays or array-like types.
  • Receiver for arrays or array-like types whose dimensionality is determined at runtime.
\ No newline at end of file +three dimensions.
  • Return the Einstein summation convention of given tensors.
  • Create a PyArray with one, two or three dimensions.
  • Structs

    Enums

    Traits

    Functions

    • Create a one-dimensional index
    • Create a two-dimensional index
    • Create a three-dimensional index
    • Create a four-dimensional index
    • Create a five-dimensional index
    • Create a six-dimensional index
    • Create a dynamic-dimensional index
    • Return the dot product of two arrays.
    • dtypeDeprecated
      Returns the type descriptor (“dtype”) for a registered type.
    • Returns the type descriptor (“dtype”) for a registered type.
    • Return the Einstein summation convention of given tensors.
    • Return the inner product of two arrays.

    Type Aliases

    • one-dimensional
    • two-dimensional
    • three-dimensional
    • four-dimensional
    • five-dimensional
    • six-dimensional
    • dynamic-dimensional
    • Receiver for zero-dimensional arrays or array-like types.
    • Receiver for one-dimensional arrays or array-like types.
    • Receiver for two-dimensional arrays or array-like types.
    • Receiver for three-dimensional arrays or array-like types.
    • Receiver for four-dimensional arrays or array-like types.
    • Receiver for five-dimensional arrays or array-like types.
    • Receiver for six-dimensional arrays or array-like types.
    • Receiver for arrays or array-like types whose dimensionality is determined at runtime.
    \ No newline at end of file diff --git a/numpy/macro.pyarray.html b/numpy/macro.pyarray.html index 0d8b6b544..1cf0063a7 100644 --- a/numpy/macro.pyarray.html +++ b/numpy/macro.pyarray.html @@ -1,5 +1,5 @@ pyarray in numpy - Rust -

    Macro numpy::pyarray

    source ·
    macro_rules! pyarray {
    +    

    Macro numpy::pyarray

    source ·
    macro_rules! pyarray {
         ($py: ident, $([$([$($x:expr),* $(,)*]),+ $(,)*]),+ $(,)*) => { ... };
         ($py: ident, $([$($x:expr),* $(,)*]),+ $(,)*) => { ... };
         ($py: ident, $($x:expr),* $(,)*) => { ... };
    diff --git a/numpy/sidebar-items.js b/numpy/sidebar-items.js
    index a09d14fec..aa272884d 100644
    --- a/numpy/sidebar-items.js
    +++ b/numpy/sidebar-items.js
    @@ -1 +1 @@
    -window.SIDEBAR_ITEMS = {"enum":["BorrowError"],"fn":["Ix1","Ix2","Ix3","Ix4","Ix5","Ix6","IxDyn","dot","dtype","einsum","inner"],"macro":["array","einsum","pyarray"],"mod":["array","borrow","convert","datetime","npyffi"],"struct":["AllowTypeChange","FromVecError","NotContiguousError","PyArrayDescr","PyArrayLike","PyFixedString","PyFixedUnicode","PyUntypedArray","TypeMustMatch"],"trait":["Element","PyUntypedArrayMethods"],"type":["Complex32","Complex64","Ix1","Ix2","Ix3","Ix4","Ix5","Ix6","IxDyn","PyArrayLike0","PyArrayLike1","PyArrayLike2","PyArrayLike3","PyArrayLike4","PyArrayLike5","PyArrayLike6","PyArrayLikeDyn"]};
    \ No newline at end of file
    +window.SIDEBAR_ITEMS = {"enum":["BorrowError"],"fn":["Ix1","Ix2","Ix3","Ix4","Ix5","Ix6","IxDyn","dot","dtype","dtype_bound","einsum","inner"],"macro":["array","einsum","pyarray"],"mod":["array","borrow","convert","datetime","npyffi"],"struct":["AllowTypeChange","FromVecError","NotContiguousError","PyArrayDescr","PyArrayLike","PyFixedString","PyFixedUnicode","PyUntypedArray","TypeMustMatch"],"trait":["Element","PyArrayDescrMethods","PyUntypedArrayMethods"],"type":["Complex32","Complex64","Ix1","Ix2","Ix3","Ix4","Ix5","Ix6","IxDyn","PyArrayLike0","PyArrayLike1","PyArrayLike2","PyArrayLike3","PyArrayLike4","PyArrayLike5","PyArrayLike6","PyArrayLikeDyn"]};
    \ No newline at end of file
    diff --git a/numpy/struct.FromVecError.html b/numpy/struct.FromVecError.html
    index a8847e1b1..fcc5e9eeb 100644
    --- a/numpy/struct.FromVecError.html
    +++ b/numpy/struct.FromVecError.html
    @@ -1,6 +1,6 @@
     FromVecError in numpy - Rust
    -    

    Struct numpy::FromVecError

    source ·
    pub struct FromVecError { /* private fields */ }
    Expand description

    Represents that given Vec cannot be treated as an array.

    -

    Trait Implementations§

    source§

    impl Debug for FromVecError

    source§

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

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

    impl Display for FromVecError

    source§

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

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

    impl Error for FromVecError

    1.30.0 · source§

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

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

    impl From<FromVecError> for PyErr

    source§

    fn from(err: FromVecError) -> PyErr

    Converts to this type from the input type.
    source§

    impl PyErrArguments for FromVecError

    source§

    fn arguments<'py>(self, py: Python<'py>) -> PyObject

    Arguments for exception

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +

    Struct numpy::FromVecError

    source ·
    pub struct FromVecError { /* private fields */ }
    Expand description

    Represents that given Vec cannot be treated as an array.

    +

    Trait Implementations§

    source§

    impl Debug for FromVecError

    source§

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

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

    impl Display for FromVecError

    source§

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

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

    impl Error for FromVecError

    1.30.0 · source§

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

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

    impl From<FromVecError> for PyErr

    source§

    fn from(err: FromVecError) -> PyErr

    Converts to this type from the input type.
    source§

    impl PyErrArguments for FromVecError

    source§

    fn arguments<'py>(self, py: Python<'py>) -> PyObject

    Arguments for exception

    Auto Trait Implementations§

    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> 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> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    diff --git a/numpy/struct.NotContiguousError.html b/numpy/struct.NotContiguousError.html index b2c21370d..158c74802 100644 --- a/numpy/struct.NotContiguousError.html +++ b/numpy/struct.NotContiguousError.html @@ -1,6 +1,6 @@ NotContiguousError in numpy - Rust -
    pub struct NotContiguousError;
    Expand description

    Represents that the given array is not contiguous.

    -

    Trait Implementations§

    source§

    impl Debug for NotContiguousError

    source§

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

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

    impl Display for NotContiguousError

    source§

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

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

    impl Error for NotContiguousError

    1.30.0 · source§

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

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

    impl From<NotContiguousError> for PyErr

    source§

    fn from(err: NotContiguousError) -> PyErr

    Converts to this type from the input type.
    source§

    impl PyErrArguments for NotContiguousError

    source§

    fn arguments<'py>(self, py: Python<'py>) -> PyObject

    Arguments for exception

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +
    pub struct NotContiguousError;
    Expand description

    Represents that the given array is not contiguous.

    +

    Trait Implementations§

    source§

    impl Debug for NotContiguousError

    source§

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

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

    impl Display for NotContiguousError

    source§

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

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

    impl Error for NotContiguousError

    1.30.0 · source§

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

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

    impl From<NotContiguousError> for PyErr

    source§

    fn from(err: NotContiguousError) -> PyErr

    Converts to this type from the input type.
    source§

    impl PyErrArguments for NotContiguousError

    source§

    fn arguments<'py>(self, py: Python<'py>) -> PyObject

    Arguments for exception

    Auto Trait Implementations§

    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> 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> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    diff --git a/numpy/struct.PyArrayDescr.html b/numpy/struct.PyArrayDescr.html index e00c85097..21e13b7b8 100644 --- a/numpy/struct.PyArrayDescr.html +++ b/numpy/struct.PyArrayDescr.html @@ -1,5 +1,5 @@ -PyArrayDescr in numpy - Rust -

    Struct numpy::PyArrayDescr

    source ·
    pub struct PyArrayDescr(/* private fields */);
    Expand description

    Binding of numpy.dtype.

    +PyArrayDescr in numpy - Rust +

    Struct numpy::PyArrayDescr

    source ·
    pub struct PyArrayDescr(/* private fields */);
    Expand description

    Binding of numpy.dtype.

    Example

    use numpy::{dtype, get_array_module, PyArrayDescr};
     use numpy::pyo3::{types::IntoPyDict, Python};
    @@ -15,59 +15,66 @@ 

    Example

    assert!(dt.is_equiv_to(dtype::<f64>(py))); });
    -

    Implementations§

    source§

    impl PyArrayDescr

    source

    pub fn new<'py, T: ToPyObject + ?Sized>( +

    Implementations§

    source§

    impl PyArrayDescr

    source

    pub fn new<'py, T: ToPyObject + ?Sized>( py: Python<'py>, ob: &T -) -> PyResult<&'py Self>

    Creates a new type descriptor (“dtype”) object from an arbitrary object.

    +) -> PyResult<&'py Self>

    👎Deprecated since 0.21.0: This will be replace by new_bound in the future.

    Creates a new type descriptor (“dtype”) object from an arbitrary object.

    Equivalent to invoking the constructor of numpy.dtype.

    -
    source

    pub fn as_dtype_ptr(&self) -> *mut PyArray_Descr

    Returns self as *mut PyArray_Descr.

    -
    source

    pub fn into_dtype_ptr(&self) -> *mut PyArray_Descr

    Returns self as *mut PyArray_Descr while increasing the reference count.

    +
    source

    pub fn new_bound<'py, T: ToPyObject + ?Sized>( + py: Python<'py>, + ob: &T +) -> PyResult<Bound<'py, Self>>

    Creates a new type descriptor (“dtype”) object from an arbitrary object.

    +

    Equivalent to invoking the constructor of numpy.dtype.

    +
    source

    pub fn as_dtype_ptr(&self) -> *mut PyArray_Descr

    Returns self as *mut PyArray_Descr.

    +
    source

    pub fn into_dtype_ptr(&self) -> *mut PyArray_Descr

    Returns self as *mut PyArray_Descr while increasing the reference count.

    Useful in cases where the descriptor is stolen by the API.

    -
    source

    pub fn object<'py>(py: Python<'py>) -> &'py Self

    Shortcut for creating a type descriptor of object type.

    -
    source

    pub fn of<'py, T: Element>(py: Python<'py>) -> &'py Self

    Returns the type descriptor for a registered type.

    -
    source

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

    Returns true if two type descriptors are equivalent.

    -
    source

    pub fn typeobj(&self) -> &PyType

    Returns the array scalar corresponding to this type descriptor.

    +
    source

    pub fn object<'py>(py: Python<'py>) -> &'py Self

    👎Deprecated since 0.21.0: This will be replaced by object_bound in the future.

    Shortcut for creating a type descriptor of object type.

    +
    source

    pub fn object_bound(py: Python<'_>) -> Bound<'_, Self>

    Shortcut for creating a type descriptor of object type.

    +
    source

    pub fn of<'py, T: Element>(py: Python<'py>) -> &'py Self

    👎Deprecated since 0.21.0: This will be replaced by of_bound in the future.

    Returns the type descriptor for a registered type.

    +
    source

    pub fn of_bound<'py, T: Element>(py: Python<'py>) -> Bound<'py, Self>

    Returns the type descriptor for a registered type.

    +
    source

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

    Returns true if two type descriptors are equivalent.

    +
    source

    pub fn typeobj(&self) -> &PyType

    Returns the array scalar corresponding to this type descriptor.

    Equivalent to numpy.dtype.type.

    -
    source

    pub fn num(&self) -> c_int

    Returns a unique number for each of the 21 different built-in +

    source

    pub fn num(&self) -> c_int

    Returns a unique number for each of the 21 different built-in enumerated types.

    These are roughly ordered from least-to-most precision.

    Equivalent to numpy.dtype.num.

    -
    source

    pub fn itemsize(&self) -> usize

    Returns the element size of this type descriptor.

    +
    source

    pub fn itemsize(&self) -> usize

    Returns the element size of this type descriptor.

    Equivalent to [numpy.dtype.itemsize][dtype-itemsize].

    -
    source

    pub fn alignment(&self) -> usize

    Returns the required alignment (bytes) of this type descriptor according to the compiler.

    +
    source

    pub fn alignment(&self) -> usize

    Returns the required alignment (bytes) of this type descriptor according to the compiler.

    Equivalent to numpy.dtype.alignment.

    -
    source

    pub fn byteorder(&self) -> u8

    Returns an ASCII character indicating the byte-order of this type descriptor object.

    +
    source

    pub fn byteorder(&self) -> u8

    Returns an ASCII character indicating the byte-order of this type descriptor object.

    All built-in data-type objects have byteorder either = or |.

    Equivalent to numpy.dtype.byteorder.

    -
    source

    pub fn char(&self) -> u8

    Returns a unique ASCII character for each of the 21 different built-in types.

    +
    source

    pub fn char(&self) -> u8

    Returns a unique ASCII character for each of the 21 different built-in types.

    Note that structured data types are categorized as V (void).

    Equivalent to numpy.dtype.char.

    -
    source

    pub fn kind(&self) -> u8

    Returns an ASCII character (one of biufcmMOSUV) identifying the general kind of data.

    +
    source

    pub fn kind(&self) -> u8

    Returns an ASCII character (one of biufcmMOSUV) identifying the general kind of data.

    Note that structured data types are categorized as V (void).

    Equivalent to numpy.dtype.kind.

    -
    source

    pub fn flags(&self) -> c_char

    Returns bit-flags describing how this type descriptor is to be interpreted.

    +
    source

    pub fn flags(&self) -> c_char

    Returns bit-flags describing how this type descriptor is to be interpreted.

    Equivalent to numpy.dtype.flags.

    -
    source

    pub fn ndim(&self) -> usize

    Returns the number of dimensions if this type descriptor represents a sub-array, and zero otherwise.

    +
    source

    pub fn ndim(&self) -> usize

    Returns the number of dimensions if this type descriptor represents a sub-array, and zero otherwise.

    Equivalent to numpy.dtype.ndim.

    -
    source

    pub fn base(&self) -> &PyArrayDescr

    Returns the type descriptor for the base element of subarrays, regardless of their dimension or shape.

    +
    source

    pub fn base(&self) -> &PyArrayDescr

    Returns the type descriptor for the base element of subarrays, regardless of their dimension or shape.

    If the dtype is not a subarray, returns self.

    Equivalent to numpy.dtype.base.

    -
    source

    pub fn shape(&self) -> Vec<usize>

    Returns the shape of the sub-array.

    +
    source

    pub fn shape(&self) -> Vec<usize>

    Returns the shape of the sub-array.

    If the dtype is not a sub-array, an empty vector is returned.

    Equivalent to numpy.dtype.shape.

    -
    source

    pub fn has_object(&self) -> bool

    Returns true if the type descriptor contains any reference-counted objects in any fields or sub-dtypes.

    +
    source

    pub fn has_object(&self) -> bool

    Returns true if the type descriptor contains any reference-counted objects in any fields or sub-dtypes.

    Equivalent to numpy.dtype.hasobject.

    -
    source

    pub fn is_aligned_struct(&self) -> bool

    Returns true if the type descriptor is a struct which maintains field alignment.

    +
    source

    pub fn is_aligned_struct(&self) -> bool

    Returns true if the type descriptor is a struct which maintains field alignment.

    This flag is sticky, so when combining multiple structs together, it is preserved and produces new dtypes which are also aligned.

    Equivalent to numpy.dtype.isalignedstruct.

    -
    source

    pub fn has_subarray(&self) -> bool

    Returns true if the type descriptor is a sub-array.

    -
    source

    pub fn has_fields(&self) -> bool

    Returns true if the type descriptor is a structured type.

    -
    source

    pub fn is_native_byteorder(&self) -> Option<bool>

    Returns true if type descriptor byteorder is native, or None if not applicable.

    -
    source

    pub fn names(&self) -> Option<Vec<&str>>

    Returns an ordered list of field names, or None if there are no fields.

    +
    source

    pub fn has_subarray(&self) -> bool

    Returns true if the type descriptor is a sub-array.

    +
    source

    pub fn has_fields(&self) -> bool

    Returns true if the type descriptor is a structured type.

    +
    source

    pub fn is_native_byteorder(&self) -> Option<bool>

    Returns true if type descriptor byteorder is native, or None if not applicable.

    +
    source

    pub fn names(&self) -> Option<Vec<&str>>

    Returns an ordered list of field names, or None if there are no fields.

    The names are ordered according to increasing byte offset.

    Equivalent to numpy.dtype.names.

    -
    source

    pub fn get_field(&self, name: &str) -> PyResult<(&PyArrayDescr, usize)>

    Returns the type descriptor and offset of the field with the given name.

    +
    source

    pub fn get_field(&self, name: &str) -> PyResult<(&PyArrayDescr, usize)>

    Returns the type descriptor and offset of the field with the given name.

    This method will return an error if this type descriptor is not structured, or if it does not contain a field with a given name.

    The list of all names can be found via PyArrayDescr::names.

    @@ -487,8 +494,8 @@
    Safety
    of the pointer or decrease the reference count (e.g. with pyo3::ffi::Py_DecRef).

    pub fn py_super(&self) -> Result<&PySuper, PyErr>

    Return a proxy object that delegates method calls to a parent or sibling class of type.

    This is equivalent to the Python expression super()

    -

    Trait Implementations§

    source§

    impl AsPyPointer for PyArrayDescr

    source§

    fn as_ptr(&self) -> *mut PyObject

    Gets the underlying FFI pointer, returns a borrowed pointer.

    -
    source§

    impl AsRef<PyAny> for PyArrayDescr

    source§

    fn as_ref(&self) -> &PyAny

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

    impl Debug for PyArrayDescr

    source§

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

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

    impl Deref for PyArrayDescr

    §

    type Target = PyAny

    The resulting type after dereferencing.
    source§

    fn deref(&self) -> &PyAny

    Dereferences the value.
    source§

    impl Display for PyArrayDescr

    source§

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

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

    impl<'a> From<&'a PyArrayDescr> for &'a PyAny

    source§

    fn from(ob: &'a PyArrayDescr) -> Self

    Converts to this type from the input type.
    source§

    impl From<&PyArrayDescr> for Py<PyArrayDescr>

    source§

    fn from(other: &PyArrayDescr) -> Self

    Converts to this type from the input type.
    source§

    impl<'py> FromPyObject<'py> for &'py PyArrayDescr

    source§

    fn extract_bound(obj: &Bound<'py, PyAny>) -> PyResult<Self>

    Extracts Self from the bound smart pointer obj. Read more
    §

    fn extract(ob: &'py PyAny) -> Result<Self, PyErr>

    Extracts Self from the source GIL Ref obj. Read more
    source§

    impl IntoPy<Py<PyArrayDescr>> for &PyArrayDescr

    source§

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

    Performs the conversion.
    source§

    impl PyNativeType for PyArrayDescr

    §

    type AsRefSource = PyArrayDescr

    The form of this which is stored inside a Py<T> smart pointer.
    §

    fn as_borrowed(&self) -> Borrowed<'_, '_, Self::AsRefSource>

    Cast &self to a Borrowed smart pointer. Read more
    §

    fn py(&self) -> Python<'_>

    Returns a GIL marker constrained to the lifetime of this type.
    §

    unsafe fn unchecked_downcast(obj: &PyAny) -> &Self

    Cast &PyAny to &Self without no type checking. Read more
    source§

    impl PyTypeInfo for PyArrayDescr

    source§

    const NAME: &'static str = "PyArrayDescr"

    Class name.
    source§

    const MODULE: Option<&'static str> = _

    Module name, if any.
    source§

    fn type_object_raw<'py>(py: Python<'py>) -> *mut PyTypeObject

    Returns the PyTypeObject instance for this type.
    source§

    fn is_type_of(ob: &PyAny) -> bool

    Checks if object is an instance of this type or a subclass of this type.
    §

    fn type_object(py: Python<'_>) -> &PyType

    Returns the safe abstraction over the type object.
    §

    fn type_object_bound(py: Python<'_>) -> Bound<'_, PyType>

    Returns the safe abstraction over the type object.
    §

    fn is_type_of_bound(object: &Bound<'_, PyAny>) -> bool

    Checks if object is an instance of this type or a subclass of this type.
    §

    fn is_exact_type_of(object: &PyAny) -> bool

    Checks if object is an instance of this type.
    §

    fn is_exact_type_of_bound(object: &Bound<'_, PyAny>) -> bool

    Checks if object is an instance of this type.
    source§

    impl ToPyObject for PyArrayDescr

    source§

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

    Converts self into a Python object.
    source§

    impl DerefToPyAny for PyArrayDescr

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +

    Trait Implementations§

    source§

    impl AsPyPointer for PyArrayDescr

    source§

    fn as_ptr(&self) -> *mut PyObject

    Gets the underlying FFI pointer, returns a borrowed pointer.

    +
    source§

    impl AsRef<PyAny> for PyArrayDescr

    source§

    fn as_ref(&self) -> &PyAny

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

    impl Debug for PyArrayDescr

    source§

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

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

    impl Deref for PyArrayDescr

    §

    type Target = PyAny

    The resulting type after dereferencing.
    source§

    fn deref(&self) -> &PyAny

    Dereferences the value.
    source§

    impl Display for PyArrayDescr

    source§

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

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

    impl<'a> From<&'a PyArrayDescr> for &'a PyAny

    source§

    fn from(ob: &'a PyArrayDescr) -> Self

    Converts to this type from the input type.
    source§

    impl From<&PyArrayDescr> for Py<PyArrayDescr>

    source§

    fn from(other: &PyArrayDescr) -> Self

    Converts to this type from the input type.
    source§

    impl<'py> FromPyObject<'py> for &'py PyArrayDescr

    source§

    fn extract_bound(obj: &Bound<'py, PyAny>) -> PyResult<Self>

    Extracts Self from the bound smart pointer obj. Read more
    §

    fn extract(ob: &'py PyAny) -> Result<Self, PyErr>

    Extracts Self from the source GIL Ref obj. Read more
    source§

    impl IntoPy<Py<PyArrayDescr>> for &PyArrayDescr

    source§

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

    Performs the conversion.
    source§

    impl PyNativeType for PyArrayDescr

    §

    type AsRefSource = PyArrayDescr

    The form of this which is stored inside a Py<T> smart pointer.
    §

    fn as_borrowed(&self) -> Borrowed<'_, '_, Self::AsRefSource>

    Cast &self to a Borrowed smart pointer. Read more
    §

    fn py(&self) -> Python<'_>

    Returns a GIL marker constrained to the lifetime of this type.
    §

    unsafe fn unchecked_downcast(obj: &PyAny) -> &Self

    Cast &PyAny to &Self without no type checking. Read more
    source§

    impl PyTypeInfo for PyArrayDescr

    source§

    const NAME: &'static str = "PyArrayDescr"

    Class name.
    source§

    const MODULE: Option<&'static str> = _

    Module name, if any.
    source§

    fn type_object_raw<'py>(py: Python<'py>) -> *mut PyTypeObject

    Returns the PyTypeObject instance for this type.
    source§

    fn is_type_of(ob: &PyAny) -> bool

    Checks if object is an instance of this type or a subclass of this type.
    §

    fn type_object(py: Python<'_>) -> &PyType

    Returns the safe abstraction over the type object.
    §

    fn type_object_bound(py: Python<'_>) -> Bound<'_, PyType>

    Returns the safe abstraction over the type object.
    §

    fn is_type_of_bound(object: &Bound<'_, PyAny>) -> bool

    Checks if object is an instance of this type or a subclass of this type.
    §

    fn is_exact_type_of(object: &PyAny) -> bool

    Checks if object is an instance of this type.
    §

    fn is_exact_type_of_bound(object: &Bound<'_, PyAny>) -> bool

    Checks if object is an instance of this type.
    source§

    impl ToPyObject for PyArrayDescr

    source§

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

    Converts self into a Python object.
    source§

    impl DerefToPyAny for PyArrayDescr

    Auto Trait Implementations§

    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> 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> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    diff --git a/numpy/struct.PyArrayLike.html b/numpy/struct.PyArrayLike.html index c24bcb185..fdb94cfd8 100644 --- a/numpy/struct.PyArrayLike.html +++ b/numpy/struct.PyArrayLike.html @@ -335,13 +335,13 @@
    Example
    source

    pub fn dtype(&self) -> &PyArrayDescr

    Returns the dtype of the array.

    See also ndarray.dtype and PyArray_DTYPE.

    Example
    -
    use numpy::{dtype, PyArray};
    +
    use numpy::{dtype_bound, PyArray};
     use pyo3::Python;
     
     Python::with_gil(|py| {
        let array = PyArray::from_vec(py, vec![1_i32, 2, 3]);
     
    -   assert!(array.dtype().is_equiv_to(dtype::<i32>(py)));
    +   assert!(array.dtype().is_equiv_to(dtype_bound::<i32>(py).as_gil_ref()));
     });
    source

    pub fn is_contiguous(&self) -> bool

    Returns true if the internal data of the array is contiguous, indepedently of whether C-style/row-major or Fortran-style/column-major.

    diff --git a/numpy/struct.PyFixedString.html b/numpy/struct.PyFixedString.html index 923daa390..545105d85 100644 --- a/numpy/struct.PyFixedString.html +++ b/numpy/struct.PyFixedString.html @@ -18,7 +18,7 @@

    Example

    let array = PyArray1::<PyFixedString<3>>::from_vec(py, vec![[b'f', b'o', b'o'].into()]); assert!(array.dtype().to_string().contains("S3"));

    -

    Tuple Fields§

    §0: [Py_UCS1; N]

    Trait Implementations§

    source§

    impl<const N: usize> Clone for PyFixedString<N>

    source§

    fn clone(&self) -> PyFixedString<N>

    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<const N: usize> Debug for PyFixedString<N>

    source§

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

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

    impl<const N: usize> Display for PyFixedString<N>

    source§

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

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

    impl<const N: usize> Element for PyFixedString<N>

    source§

    const IS_COPY: bool = true

    Flag that indicates whether this type is trivially copyable. Read more
    source§

    fn get_dtype<'py>(py: Python<'py>) -> &PyArrayDescr

    Returns the associated type descriptor (“dtype”) for the given element type.
    source§

    impl<const N: usize> From<[u8; N]> for PyFixedString<N>

    source§

    fn from(val: [Py_UCS1; N]) -> Self

    Converts to this type from the input type.
    source§

    impl<const N: usize> Hash for PyFixedString<N>

    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 +

    Tuple Fields§

    §0: [Py_UCS1; N]

    Trait Implementations§

    source§

    impl<const N: usize> Clone for PyFixedString<N>

    source§

    fn clone(&self) -> PyFixedString<N>

    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<const N: usize> Debug for PyFixedString<N>

    source§

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

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

    impl<const N: usize> Display for PyFixedString<N>

    source§

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

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

    impl<const N: usize> Element for PyFixedString<N>

    source§

    const IS_COPY: bool = true

    Flag that indicates whether this type is trivially copyable. Read more
    source§

    fn get_dtype_bound(py: Python<'_>) -> Bound<'_, PyArrayDescr>

    Returns the associated type descriptor (“dtype”) for the given element type.
    source§

    fn get_dtype<'py>(py: Python<'py>) -> &'py PyArrayDescr

    👎Deprecated since 0.21.0: This will be replaced by get_dtype_bound in the future.
    Returns the associated type descriptor (“dtype”) for the given element type.
    source§

    impl<const N: usize> From<[u8; N]> for PyFixedString<N>

    source§

    fn from(val: [Py_UCS1; N]) -> Self

    Converts to this type from the input type.
    source§

    impl<const N: usize> Hash for PyFixedString<N>

    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<const N: usize> Ord for PyFixedString<N>

    source§

    fn cmp(&self, other: &PyFixedString<N>) -> Ordering

    This method returns an Ordering between self and other. Read more
    1.21.0 · source§

    fn max(self, other: Self) -> Self
    where Self: Sized,

    Compares and returns the maximum of two values. Read more
    1.21.0 · source§

    fn min(self, other: Self) -> Self
    where diff --git a/numpy/struct.PyFixedUnicode.html b/numpy/struct.PyFixedUnicode.html index f94f648a3..1e93b9d68 100644 --- a/numpy/struct.PyFixedUnicode.html +++ b/numpy/struct.PyFixedUnicode.html @@ -18,7 +18,7 @@

    Example

    let array = PyArray1::<PyFixedUnicode<3>>::from_vec(py, vec![[b'b' as _, b'a' as _, b'r' as _].into()]); assert!(array.dtype().to_string().contains("U3"));
    -

    Tuple Fields§

    §0: [Py_UCS4; N]

    Trait Implementations§

    source§

    impl<const N: usize> Clone for PyFixedUnicode<N>

    source§

    fn clone(&self) -> PyFixedUnicode<N>

    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<const N: usize> Debug for PyFixedUnicode<N>

    source§

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

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

    impl<const N: usize> Display for PyFixedUnicode<N>

    source§

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

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

    impl<const N: usize> Element for PyFixedUnicode<N>

    source§

    const IS_COPY: bool = true

    Flag that indicates whether this type is trivially copyable. Read more
    source§

    fn get_dtype<'py>(py: Python<'py>) -> &PyArrayDescr

    Returns the associated type descriptor (“dtype”) for the given element type.
    source§

    impl<const N: usize> From<[u32; N]> for PyFixedUnicode<N>

    source§

    fn from(val: [Py_UCS4; N]) -> Self

    Converts to this type from the input type.
    source§

    impl<const N: usize> Hash for PyFixedUnicode<N>

    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 +

    Tuple Fields§

    §0: [Py_UCS4; N]

    Trait Implementations§

    source§

    impl<const N: usize> Clone for PyFixedUnicode<N>

    source§

    fn clone(&self) -> PyFixedUnicode<N>

    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<const N: usize> Debug for PyFixedUnicode<N>

    source§

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

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

    impl<const N: usize> Display for PyFixedUnicode<N>

    source§

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

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

    impl<const N: usize> Element for PyFixedUnicode<N>

    source§

    const IS_COPY: bool = true

    Flag that indicates whether this type is trivially copyable. Read more
    source§

    fn get_dtype_bound(py: Python<'_>) -> Bound<'_, PyArrayDescr>

    Returns the associated type descriptor (“dtype”) for the given element type.
    source§

    fn get_dtype<'py>(py: Python<'py>) -> &'py PyArrayDescr

    👎Deprecated since 0.21.0: This will be replaced by get_dtype_bound in the future.
    Returns the associated type descriptor (“dtype”) for the given element type.
    source§

    impl<const N: usize> From<[u32; N]> for PyFixedUnicode<N>

    source§

    fn from(val: [Py_UCS4; N]) -> Self

    Converts to this type from the input type.
    source§

    impl<const N: usize> Hash for PyFixedUnicode<N>

    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<const N: usize> Ord for PyFixedUnicode<N>

    source§

    fn cmp(&self, other: &PyFixedUnicode<N>) -> Ordering

    This method returns an Ordering between self and other. Read more
    1.21.0 · source§

    fn max(self, other: Self) -> Self
    where Self: Sized,

    Compares and returns the maximum of two values. Read more
    1.21.0 · source§

    fn min(self, other: Self) -> Self
    where diff --git a/numpy/struct.PyUntypedArray.html b/numpy/struct.PyUntypedArray.html index 6955e28d4..f83ccf38a 100644 --- a/numpy/struct.PyUntypedArray.html +++ b/numpy/struct.PyUntypedArray.html @@ -36,13 +36,13 @@

    Example

    source

    pub fn dtype(&self) -> &PyArrayDescr

    Returns the dtype of the array.

    See also ndarray.dtype and PyArray_DTYPE.

    Example
    -
    use numpy::{dtype, PyArray};
    +
    use numpy::{dtype_bound, PyArray};
     use pyo3::Python;
     
     Python::with_gil(|py| {
        let array = PyArray::from_vec(py, vec![1_i32, 2, 3]);
     
    -   assert!(array.dtype().is_equiv_to(dtype::<i32>(py)));
    +   assert!(array.dtype().is_equiv_to(dtype_bound::<i32>(py).as_gil_ref()));
     });
    source

    pub fn is_contiguous(&self) -> bool

    Returns true if the internal data of the array is contiguous, indepedently of whether C-style/row-major or Fortran-style/column-major.

    @@ -514,7 +514,7 @@
    Safety

    pub fn py_super(&self) -> Result<&PySuper, PyErr>

    Return a proxy object that delegates method calls to a parent or sibling class of type.

    This is equivalent to the Python expression super()

    Trait Implementations§

    source§

    impl AsPyPointer for PyUntypedArray

    source§

    fn as_ptr(&self) -> *mut PyObject

    Gets the underlying FFI pointer, returns a borrowed pointer.

    -
    source§

    impl AsRef<PyAny> for PyUntypedArray

    source§

    fn as_ref(&self) -> &PyAny

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

    impl Debug for PyUntypedArray

    source§

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

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

    impl Deref for PyUntypedArray

    §

    type Target = PyAny

    The resulting type after dereferencing.
    source§

    fn deref(&self) -> &PyAny

    Dereferences the value.
    source§

    impl Display for PyUntypedArray

    source§

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

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

    impl<'a> From<&'a PyUntypedArray> for &'a PyAny

    source§

    fn from(ob: &'a PyUntypedArray) -> Self

    Converts to this type from the input type.
    source§

    impl From<&PyUntypedArray> for Py<PyUntypedArray>

    source§

    fn from(other: &PyUntypedArray) -> Self

    Converts to this type from the input type.
    source§

    impl<'py> FromPyObject<'py> for &'py PyUntypedArray

    source§

    fn extract_bound(obj: &Bound<'py, PyAny>) -> PyResult<Self>

    Extracts Self from the bound smart pointer obj. Read more
    §

    fn extract(ob: &'py PyAny) -> Result<Self, PyErr>

    Extracts Self from the source GIL Ref obj. Read more
    source§

    impl IntoPy<Py<PyAny>> for PyUntypedArray

    source§

    fn into_py<'py>(self, py: Python<'py>) -> PyObject

    Performs the conversion.
    source§

    impl IntoPy<Py<PyUntypedArray>> for &PyUntypedArray

    source§

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

    Performs the conversion.
    source§

    impl PyNativeType for PyUntypedArray

    §

    type AsRefSource = PyUntypedArray

    The form of this which is stored inside a Py<T> smart pointer.
    §

    fn as_borrowed(&self) -> Borrowed<'_, '_, Self::AsRefSource>

    Cast &self to a Borrowed smart pointer. Read more
    §

    fn py(&self) -> Python<'_>

    Returns a GIL marker constrained to the lifetime of this type.
    §

    unsafe fn unchecked_downcast(obj: &PyAny) -> &Self

    Cast &PyAny to &Self without no type checking. Read more
    source§

    impl PyTypeInfo for PyUntypedArray

    source§

    const NAME: &'static str = "PyUntypedArray"

    Class name.
    source§

    const MODULE: Option<&'static str> = _

    Module name, if any.
    source§

    fn type_object_raw<'py>(py: Python<'py>) -> *mut PyTypeObject

    Returns the PyTypeObject instance for this type.
    source§

    fn is_type_of_bound(ob: &Bound<'_, PyAny>) -> bool

    Checks if object is an instance of this type or a subclass of this type.
    §

    fn type_object(py: Python<'_>) -> &PyType

    Returns the safe abstraction over the type object.
    §

    fn type_object_bound(py: Python<'_>) -> Bound<'_, PyType>

    Returns the safe abstraction over the type object.
    §

    fn is_type_of(object: &PyAny) -> bool

    Checks if object is an instance of this type or a subclass of this type.
    §

    fn is_exact_type_of(object: &PyAny) -> bool

    Checks if object is an instance of this type.
    §

    fn is_exact_type_of_bound(object: &Bound<'_, PyAny>) -> bool

    Checks if object is an instance of this type.
    source§

    impl ToPyObject for PyUntypedArray

    source§

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

    Converts self into a Python object.
    source§

    impl DerefToPyAny for PyUntypedArray

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +

    source§

    impl AsRef<PyAny> for PyUntypedArray

    source§

    fn as_ref(&self) -> &PyAny

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

    impl Debug for PyUntypedArray

    source§

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

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

    impl Deref for PyUntypedArray

    §

    type Target = PyAny

    The resulting type after dereferencing.
    source§

    fn deref(&self) -> &PyAny

    Dereferences the value.
    source§

    impl Display for PyUntypedArray

    source§

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

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

    impl<'a> From<&'a PyUntypedArray> for &'a PyAny

    source§

    fn from(ob: &'a PyUntypedArray) -> Self

    Converts to this type from the input type.
    source§

    impl From<&PyUntypedArray> for Py<PyUntypedArray>

    source§

    fn from(other: &PyUntypedArray) -> Self

    Converts to this type from the input type.
    source§

    impl<'py> FromPyObject<'py> for &'py PyUntypedArray

    source§

    fn extract_bound(obj: &Bound<'py, PyAny>) -> PyResult<Self>

    Extracts Self from the bound smart pointer obj. Read more
    §

    fn extract(ob: &'py PyAny) -> Result<Self, PyErr>

    Extracts Self from the source GIL Ref obj. Read more
    source§

    impl IntoPy<Py<PyAny>> for PyUntypedArray

    source§

    fn into_py<'py>(self, py: Python<'py>) -> PyObject

    Performs the conversion.
    source§

    impl IntoPy<Py<PyUntypedArray>> for &PyUntypedArray

    source§

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

    Performs the conversion.
    source§

    impl PyNativeType for PyUntypedArray

    §

    type AsRefSource = PyUntypedArray

    The form of this which is stored inside a Py<T> smart pointer.
    §

    fn as_borrowed(&self) -> Borrowed<'_, '_, Self::AsRefSource>

    Cast &self to a Borrowed smart pointer. Read more
    §

    fn py(&self) -> Python<'_>

    Returns a GIL marker constrained to the lifetime of this type.
    §

    unsafe fn unchecked_downcast(obj: &PyAny) -> &Self

    Cast &PyAny to &Self without no type checking. Read more
    source§

    impl PyTypeInfo for PyUntypedArray

    source§

    const NAME: &'static str = "PyUntypedArray"

    Class name.
    source§

    const MODULE: Option<&'static str> = _

    Module name, if any.
    source§

    fn type_object_raw<'py>(py: Python<'py>) -> *mut PyTypeObject

    Returns the PyTypeObject instance for this type.
    source§

    fn is_type_of_bound(ob: &Bound<'_, PyAny>) -> bool

    Checks if object is an instance of this type or a subclass of this type.
    §

    fn type_object(py: Python<'_>) -> &PyType

    Returns the safe abstraction over the type object.
    §

    fn type_object_bound(py: Python<'_>) -> Bound<'_, PyType>

    Returns the safe abstraction over the type object.
    §

    fn is_type_of(object: &PyAny) -> bool

    Checks if object is an instance of this type or a subclass of this type.
    §

    fn is_exact_type_of(object: &PyAny) -> bool

    Checks if object is an instance of this type.
    §

    fn is_exact_type_of_bound(object: &Bound<'_, PyAny>) -> bool

    Checks if object is an instance of this type.
    source§

    impl ToPyObject for PyUntypedArray

    source§

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

    Converts self into a Python object.
    source§

    impl DerefToPyAny for PyUntypedArray

    Auto Trait Implementations§

    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> 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> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    diff --git a/numpy/trait.Element.html b/numpy/trait.Element.html index f5d5879e2..b651e93e2 100644 --- a/numpy/trait.Element.html +++ b/numpy/trait.Element.html @@ -1,9 +1,12 @@ -Element in numpy - Rust -

    Trait numpy::Element

    source ·
    pub unsafe trait Element: Clone + Send {
    +Element in numpy - Rust
    +    

    Trait numpy::Element

    source ·
    pub unsafe trait Element: Clone + Send {
         const IS_COPY: bool;
     
         // Required method
    -    fn get_dtype<'py>(py: Python<'py>) -> &'py PyArrayDescr;
    +    fn get_dtype_bound(py: Python<'_>) -> Bound<'_, PyArrayDescr>;
    +
    +    // Provided method
    +    fn get_dtype<'py>(py: Python<'py>) -> &'py PyArrayDescr { ... }
     }
    Expand description

    Represents that a type can be an element of PyArray.

    Currently, only integer/float/complex/object types are supported. The NumPy documentation list the other built-in types which we are not yet implemented.

    @@ -30,12 +33,13 @@

    Custom element typ and only Py<PyAny> can be stored in a type safe manner.

    You can however create Array<Py<T>, D> and turn that into a NumPy array safely and efficiently using from_owned_object_array.

    -

    Required Associated Constants§

    source

    const IS_COPY: bool

    Flag that indicates whether this type is trivially copyable.

    +

    Required Associated Constants§

    source

    const IS_COPY: bool

    Flag that indicates whether this type is trivially copyable.

    It should be set to true for all trivially copyable types (like scalar types and record/array types only containing trivially copyable fields and elements).

    This flag should always be set to false for object types or record types that contain object-type fields.

    -

    Required Methods§

    source

    fn get_dtype<'py>(py: Python<'py>) -> &'py PyArrayDescr

    Returns the associated type descriptor (“dtype”) for the given element type.

    -

    Object Safety§

    This trait is not object safe.

    Implementations on Foreign Types§

    source§

    impl Element for bool

    source§

    const IS_COPY: bool = true

    source§

    fn get_dtype<'py>(py: Python<'py>) -> &'py PyArrayDescr

    source§

    impl Element for f32

    source§

    const IS_COPY: bool = true

    source§

    fn get_dtype<'py>(py: Python<'py>) -> &'py PyArrayDescr

    source§

    impl Element for f64

    source§

    const IS_COPY: bool = true

    source§

    fn get_dtype<'py>(py: Python<'py>) -> &'py PyArrayDescr

    source§

    impl Element for i8

    source§

    const IS_COPY: bool = true

    source§

    fn get_dtype<'py>(py: Python<'py>) -> &'py PyArrayDescr

    source§

    impl Element for i16

    source§

    const IS_COPY: bool = true

    source§

    fn get_dtype<'py>(py: Python<'py>) -> &'py PyArrayDescr

    source§

    impl Element for i32

    source§

    const IS_COPY: bool = true

    source§

    fn get_dtype<'py>(py: Python<'py>) -> &'py PyArrayDescr

    source§

    impl Element for i64

    source§

    const IS_COPY: bool = true

    source§

    fn get_dtype<'py>(py: Python<'py>) -> &'py PyArrayDescr

    source§

    impl Element for isize

    source§

    const IS_COPY: bool = true

    source§

    fn get_dtype<'py>(py: Python<'py>) -> &'py PyArrayDescr

    source§

    impl Element for u8

    source§

    const IS_COPY: bool = true

    source§

    fn get_dtype<'py>(py: Python<'py>) -> &'py PyArrayDescr

    source§

    impl Element for u16

    source§

    const IS_COPY: bool = true

    source§

    fn get_dtype<'py>(py: Python<'py>) -> &'py PyArrayDescr

    source§

    impl Element for u32

    source§

    const IS_COPY: bool = true

    source§

    fn get_dtype<'py>(py: Python<'py>) -> &'py PyArrayDescr

    source§

    impl Element for u64

    source§

    const IS_COPY: bool = true

    source§

    fn get_dtype<'py>(py: Python<'py>) -> &'py PyArrayDescr

    source§

    impl Element for usize

    source§

    const IS_COPY: bool = true

    source§

    fn get_dtype<'py>(py: Python<'py>) -> &'py PyArrayDescr

    source§

    impl Element for bf16

    source§

    const IS_COPY: bool = true

    source§

    fn get_dtype<'py>(py: Python<'py>) -> &PyArrayDescr

    source§

    impl Element for f16

    source§

    const IS_COPY: bool = true

    source§

    fn get_dtype<'py>(py: Python<'py>) -> &'py PyArrayDescr

    source§

    impl Element for PyObject

    source§

    const IS_COPY: bool = false

    source§

    fn get_dtype<'py>(py: Python<'py>) -> &PyArrayDescr

    Implementors§

    source§

    impl Element for Complex32

    Complex type with f32 components which maps to numpy.csingle (numpy.complex64).

    -
    source§

    const IS_COPY: bool = true

    source§

    impl Element for Complex64

    Complex type with f64 components which maps to numpy.cdouble (numpy.complex128).

    -
    source§

    const IS_COPY: bool = true

    source§

    impl<U: Unit> Element for Datetime<U>

    source§

    const IS_COPY: bool = true

    source§

    impl<U: Unit> Element for Timedelta<U>

    source§

    const IS_COPY: bool = true

    source§

    impl<const N: usize> Element for PyFixedString<N>

    source§

    const IS_COPY: bool = true

    source§

    impl<const N: usize> Element for PyFixedUnicode<N>

    source§

    const IS_COPY: bool = true

    \ No newline at end of file +

    Required Methods§

    source

    fn get_dtype_bound(py: Python<'_>) -> Bound<'_, PyArrayDescr>

    Returns the associated type descriptor (“dtype”) for the given element type.

    +

    Provided Methods§

    source

    fn get_dtype<'py>(py: Python<'py>) -> &'py PyArrayDescr

    👎Deprecated since 0.21.0: This will be replaced by get_dtype_bound in the future.

    Returns the associated type descriptor (“dtype”) for the given element type.

    +

    Object Safety§

    This trait is not object safe.

    Implementations on Foreign Types§

    source§

    impl Element for bool

    source§

    const IS_COPY: bool = true

    source§

    fn get_dtype_bound(py: Python<'_>) -> Bound<'_, PyArrayDescr>

    source§

    impl Element for f32

    source§

    const IS_COPY: bool = true

    source§

    fn get_dtype_bound(py: Python<'_>) -> Bound<'_, PyArrayDescr>

    source§

    impl Element for f64

    source§

    const IS_COPY: bool = true

    source§

    fn get_dtype_bound(py: Python<'_>) -> Bound<'_, PyArrayDescr>

    source§

    impl Element for i8

    source§

    const IS_COPY: bool = true

    source§

    fn get_dtype_bound(py: Python<'_>) -> Bound<'_, PyArrayDescr>

    source§

    impl Element for i16

    source§

    const IS_COPY: bool = true

    source§

    fn get_dtype_bound(py: Python<'_>) -> Bound<'_, PyArrayDescr>

    source§

    impl Element for i32

    source§

    const IS_COPY: bool = true

    source§

    fn get_dtype_bound(py: Python<'_>) -> Bound<'_, PyArrayDescr>

    source§

    impl Element for i64

    source§

    const IS_COPY: bool = true

    source§

    fn get_dtype_bound(py: Python<'_>) -> Bound<'_, PyArrayDescr>

    source§

    impl Element for isize

    source§

    const IS_COPY: bool = true

    source§

    fn get_dtype_bound(py: Python<'_>) -> Bound<'_, PyArrayDescr>

    source§

    impl Element for u8

    source§

    const IS_COPY: bool = true

    source§

    fn get_dtype_bound(py: Python<'_>) -> Bound<'_, PyArrayDescr>

    source§

    impl Element for u16

    source§

    const IS_COPY: bool = true

    source§

    fn get_dtype_bound(py: Python<'_>) -> Bound<'_, PyArrayDescr>

    source§

    impl Element for u32

    source§

    const IS_COPY: bool = true

    source§

    fn get_dtype_bound(py: Python<'_>) -> Bound<'_, PyArrayDescr>

    source§

    impl Element for u64

    source§

    const IS_COPY: bool = true

    source§

    fn get_dtype_bound(py: Python<'_>) -> Bound<'_, PyArrayDescr>

    source§

    impl Element for usize

    source§

    const IS_COPY: bool = true

    source§

    fn get_dtype_bound(py: Python<'_>) -> Bound<'_, PyArrayDescr>

    source§

    impl Element for bf16

    source§

    const IS_COPY: bool = true

    source§

    fn get_dtype_bound(py: Python<'_>) -> Bound<'_, PyArrayDescr>

    source§

    impl Element for f16

    source§

    const IS_COPY: bool = true

    source§

    fn get_dtype_bound(py: Python<'_>) -> Bound<'_, PyArrayDescr>

    source§

    impl Element for PyObject

    source§

    const IS_COPY: bool = false

    source§

    fn get_dtype_bound(py: Python<'_>) -> Bound<'_, PyArrayDescr>

    Implementors§

    source§

    impl Element for Complex32

    Complex type with f32 components which maps to numpy.csingle (numpy.complex64).

    +
    source§

    const IS_COPY: bool = true

    source§

    impl Element for Complex64

    Complex type with f64 components which maps to numpy.cdouble (numpy.complex128).

    +
    source§

    const IS_COPY: bool = true

    source§

    impl<U: Unit> Element for Datetime<U>

    source§

    const IS_COPY: bool = true

    source§

    impl<U: Unit> Element for Timedelta<U>

    source§

    const IS_COPY: bool = true

    source§

    impl<const N: usize> Element for PyFixedString<N>

    source§

    const IS_COPY: bool = true

    source§

    impl<const N: usize> Element for PyFixedUnicode<N>

    source§

    const IS_COPY: bool = true

    \ No newline at end of file diff --git a/numpy/trait.PyArrayDescrMethods.html b/numpy/trait.PyArrayDescrMethods.html new file mode 100644 index 000000000..bca5fc3fd --- /dev/null +++ b/numpy/trait.PyArrayDescrMethods.html @@ -0,0 +1,81 @@ +PyArrayDescrMethods in numpy - Rust +
    pub trait PyArrayDescrMethods<'py>: Sealed {
    +
    Show 21 methods // Required methods + fn as_dtype_ptr(&self) -> *mut PyArray_Descr; + fn into_dtype_ptr(self) -> *mut PyArray_Descr; + fn is_equiv_to(&self, other: &Self) -> bool; + fn typeobj(&self) -> Bound<'py, PyType>; + fn base(&self) -> Bound<'py, PyArrayDescr>; + fn shape(&self) -> Vec<usize>; + fn names(&self) -> Option<Vec<&str>>; + fn get_field( + &self, + name: &str + ) -> PyResult<(Bound<'py, PyArrayDescr>, usize)>; + + // Provided methods + fn num(&self) -> c_int { ... } + fn itemsize(&self) -> usize { ... } + fn alignment(&self) -> usize { ... } + fn byteorder(&self) -> u8 { ... } + fn char(&self) -> u8 { ... } + fn kind(&self) -> u8 { ... } + fn flags(&self) -> c_char { ... } + fn ndim(&self) -> usize { ... } + fn has_object(&self) -> bool { ... } + fn is_aligned_struct(&self) -> bool { ... } + fn has_subarray(&self) -> bool { ... } + fn has_fields(&self) -> bool { ... } + fn is_native_byteorder(&self) -> Option<bool> { ... } +
    }
    Expand description

    Implementation of functionality for PyArrayDescr.

    +

    Required Methods§

    source

    fn as_dtype_ptr(&self) -> *mut PyArray_Descr

    Returns self as *mut PyArray_Descr.

    +
    source

    fn into_dtype_ptr(self) -> *mut PyArray_Descr

    Returns self as *mut PyArray_Descr while increasing the reference count.

    +

    Useful in cases where the descriptor is stolen by the API.

    +
    source

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

    Returns true if two type descriptors are equivalent.

    +
    source

    fn typeobj(&self) -> Bound<'py, PyType>

    Returns the array scalar corresponding to this type descriptor.

    +

    Equivalent to numpy.dtype.type.

    +
    source

    fn base(&self) -> Bound<'py, PyArrayDescr>

    Returns the type descriptor for the base element of subarrays, regardless of their dimension or shape.

    +

    If the dtype is not a subarray, returns self.

    +

    Equivalent to numpy.dtype.base.

    +
    source

    fn shape(&self) -> Vec<usize>

    Returns the shape of the sub-array.

    +

    If the dtype is not a sub-array, an empty vector is returned.

    +

    Equivalent to numpy.dtype.shape.

    +
    source

    fn names(&self) -> Option<Vec<&str>>

    Returns an ordered list of field names, or None if there are no fields.

    +

    The names are ordered according to increasing byte offset.

    +

    Equivalent to numpy.dtype.names.

    +
    source

    fn get_field(&self, name: &str) -> PyResult<(Bound<'py, PyArrayDescr>, usize)>

    Returns the type descriptor and offset of the field with the given name.

    +

    This method will return an error if this type descriptor is not structured, +or if it does not contain a field with a given name.

    +

    The list of all names can be found via PyArrayDescr::names.

    +

    Equivalent to retrieving a single item from numpy.dtype.fields.

    +

    Provided Methods§

    source

    fn num(&self) -> c_int

    Returns a unique number for each of the 21 different built-in +enumerated types.

    +

    These are roughly ordered from least-to-most precision.

    +

    Equivalent to numpy.dtype.num.

    +
    source

    fn itemsize(&self) -> usize

    Returns the element size of this type descriptor.

    +

    Equivalent to [numpy.dtype.itemsize][dtype-itemsize].

    +
    source

    fn alignment(&self) -> usize

    Returns the required alignment (bytes) of this type descriptor according to the compiler.

    +

    Equivalent to numpy.dtype.alignment.

    +
    source

    fn byteorder(&self) -> u8

    Returns an ASCII character indicating the byte-order of this type descriptor object.

    +

    All built-in data-type objects have byteorder either = or |.

    +

    Equivalent to numpy.dtype.byteorder.

    +
    source

    fn char(&self) -> u8

    Returns a unique ASCII character for each of the 21 different built-in types.

    +

    Note that structured data types are categorized as V (void).

    +

    Equivalent to numpy.dtype.char.

    +
    source

    fn kind(&self) -> u8

    Returns an ASCII character (one of biufcmMOSUV) identifying the general kind of data.

    +

    Note that structured data types are categorized as V (void).

    +

    Equivalent to numpy.dtype.kind.

    +
    source

    fn flags(&self) -> c_char

    Returns bit-flags describing how this type descriptor is to be interpreted.

    +

    Equivalent to numpy.dtype.flags.

    +
    source

    fn ndim(&self) -> usize

    Returns the number of dimensions if this type descriptor represents a sub-array, and zero otherwise.

    +

    Equivalent to numpy.dtype.ndim.

    +
    source

    fn has_object(&self) -> bool

    Returns true if the type descriptor contains any reference-counted objects in any fields or sub-dtypes.

    +

    Equivalent to numpy.dtype.hasobject.

    +
    source

    fn is_aligned_struct(&self) -> bool

    Returns true if the type descriptor is a struct which maintains field alignment.

    +

    This flag is sticky, so when combining multiple structs together, it is preserved +and produces new dtypes which are also aligned.

    +

    Equivalent to numpy.dtype.isalignedstruct.

    +
    source

    fn has_subarray(&self) -> bool

    Returns true if the type descriptor is a sub-array.

    +
    source

    fn has_fields(&self) -> bool

    Returns true if the type descriptor is a structured type.

    +
    source

    fn is_native_byteorder(&self) -> Option<bool>

    Returns true if type descriptor byteorder is native, or None if not applicable.

    +

    Object Safety§

    This trait is not object safe.

    Implementations on Foreign Types§

    source§

    impl<'py> PyArrayDescrMethods<'py> for Bound<'py, PyArrayDescr>

    source§

    fn as_dtype_ptr(&self) -> *mut PyArray_Descr

    source§

    fn into_dtype_ptr(self) -> *mut PyArray_Descr

    source§

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

    source§

    fn typeobj(&self) -> Bound<'py, PyType>

    source§

    fn base(&self) -> Bound<'py, PyArrayDescr>

    source§

    fn shape(&self) -> Vec<usize>

    source§

    fn names(&self) -> Option<Vec<&str>>

    source§

    fn get_field(&self, name: &str) -> PyResult<(Bound<'py, PyArrayDescr>, usize)>

    Implementors§

    \ No newline at end of file diff --git a/numpy/trait.PyUntypedArrayMethods.html b/numpy/trait.PyUntypedArrayMethods.html index cad4ceb65..4bcf06d3a 100644 --- a/numpy/trait.PyUntypedArrayMethods.html +++ b/numpy/trait.PyUntypedArrayMethods.html @@ -18,13 +18,13 @@
    source

    fn dtype(&self) -> Bound<'py, PyArrayDescr>

    Returns the dtype of the array.

    See also ndarray.dtype and PyArray_DTYPE.

    Example
    -
    use numpy::{dtype, PyArray};
    +
    use numpy::{dtype_bound, PyArray};
     use pyo3::Python;
     
     Python::with_gil(|py| {
        let array = PyArray::from_vec(py, vec![1_i32, 2, 3]);
     
    -   assert!(array.dtype().is_equiv_to(dtype::<i32>(py)));
    +   assert!(array.dtype().is_equiv_to(dtype_bound::<i32>(py).as_gil_ref()));
     });

    Provided Methods§

    source

    fn is_contiguous(&self) -> bool

    Returns true if the internal data of the array is contiguous, indepedently of whether C-style/row-major or Fortran-style/column-major.

    diff --git a/numpy/type.Complex32.html b/numpy/type.Complex32.html index f2bed1771..703c9d19f 100644 --- a/numpy/type.Complex32.html +++ b/numpy/type.Complex32.html @@ -4,5 +4,5 @@ pub im: f32, }

    Fields§

    §re: f32

    Real portion of the complex number

    §im: f32

    Imaginary portion of the complex number

    -

    Trait Implementations§

    source§

    impl Element for Complex32

    Complex type with f32 components which maps to numpy.csingle (numpy.complex64).

    -
    source§

    const IS_COPY: bool = true

    Flag that indicates whether this type is trivially copyable. Read more
    source§

    fn get_dtype<'py>(py: Python<'py>) -> &'py PyArrayDescr

    Returns the associated type descriptor (“dtype”) for the given element type.
    \ No newline at end of file +

    Trait Implementations§

    source§

    impl Element for Complex32

    Complex type with f32 components which maps to numpy.csingle (numpy.complex64).

    +
    source§

    const IS_COPY: bool = true

    Flag that indicates whether this type is trivially copyable. Read more
    source§

    fn get_dtype_bound(py: Python<'_>) -> Bound<'_, PyArrayDescr>

    Returns the associated type descriptor (“dtype”) for the given element type.
    source§

    fn get_dtype<'py>(py: Python<'py>) -> &'py PyArrayDescr

    👎Deprecated since 0.21.0: This will be replaced by get_dtype_bound in the future.
    Returns the associated type descriptor (“dtype”) for the given element type.
    \ No newline at end of file diff --git a/numpy/type.Complex64.html b/numpy/type.Complex64.html index 405610bde..6ef11c869 100644 --- a/numpy/type.Complex64.html +++ b/numpy/type.Complex64.html @@ -4,5 +4,5 @@ pub im: f64, }

    Fields§

    §re: f64

    Real portion of the complex number

    §im: f64

    Imaginary portion of the complex number

    -

    Trait Implementations§

    source§

    impl Element for Complex64

    Complex type with f64 components which maps to numpy.cdouble (numpy.complex128).

    -
    source§

    const IS_COPY: bool = true

    Flag that indicates whether this type is trivially copyable. Read more
    source§

    fn get_dtype<'py>(py: Python<'py>) -> &'py PyArrayDescr

    Returns the associated type descriptor (“dtype”) for the given element type.
    \ No newline at end of file +

    Trait Implementations§

    source§

    impl Element for Complex64

    Complex type with f64 components which maps to numpy.cdouble (numpy.complex128).

    +
    source§

    const IS_COPY: bool = true

    Flag that indicates whether this type is trivially copyable. Read more
    source§

    fn get_dtype_bound(py: Python<'_>) -> Bound<'_, PyArrayDescr>

    Returns the associated type descriptor (“dtype”) for the given element type.
    source§

    fn get_dtype<'py>(py: Python<'py>) -> &'py PyArrayDescr

    👎Deprecated since 0.21.0: This will be replaced by get_dtype_bound in the future.
    Returns the associated type descriptor (“dtype”) for the given element type.
    \ No newline at end of file diff --git a/search-index.js b/search-index.js index 44df7c714..06d71f09e 100644 --- a/search-index.js +++ b/search-index.js @@ -1,5 +1,5 @@ var searchIndex = new Map(JSON.parse('[\ -["numpy",{"doc":"This crate provides Rust interfaces for NumPy C APIs, …","t":"FPGIIKFTEHIHIHIHIHIHIHIFPEEEEEEEEEEEFEFIIIIIIIIEFFEEEEEEEEEEEEEEEEEEFKEEFNNNNCQMNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNCCNNNHHMNHQNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNEMNNNNNNNNNNOOHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNENENNNNNCNNNNNQEOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFIIIIIIIIKNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFIIIIIIIIFIIIIIIIINNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNRRKRRKKKMMTFFTKNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCFFFFFFFFFFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCCCCCPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNGJFPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPNNNNNNNNNPPPPPPPPNNNNNPPPPPPPPPPPPPPPPPPPPPPPPPNNNNNNNNNNNNNNNNNNNNNNNNNSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPFIIFIIFFFFFFFIIIFFFIIIFFFFIIIIIIIIIIIIIIIIIFIIIIPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOONNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOIOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNOOOOOOOOPPPPPPPGGPPPPPPPGPPPPPPPGPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPTPPPPPPPPTGPPPPGPPGGPPPGPPPPPPGGGPPPPPPPPPPPPPPPPPPPOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOIIFFIFIIIIFIIIIIIIIIIIIIIIIIIFIFIIIIIIIIIIINOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOJFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["AllowTypeChange","AlreadyBorrowed","BorrowError","Complex32","Complex64","Element","FromVecError","IS_COPY","IntoPyArray","Ix1","Ix1","Ix2","Ix2","Ix3","Ix3","Ix4","Ix4","Ix5","Ix5","Ix6","Ix6","IxDyn","IxDyn","NotContiguousError","NotWriteable","NpyIndex","PY_ARRAY_API","PY_UFUNC_API","PyArray","PyArray0","PyArray1","PyArray2","PyArray3","PyArray4","PyArray5","PyArray6","PyArrayDescr","PyArrayDyn","PyArrayLike","PyArrayLike0","PyArrayLike1","PyArrayLike2","PyArrayLike3","PyArrayLike4","PyArrayLike5","PyArrayLike6","PyArrayLikeDyn","PyArrayMethods","PyFixedString","PyFixedUnicode","PyReadonlyArray","PyReadonlyArray0","PyReadonlyArray1","PyReadonlyArray2","PyReadonlyArray3","PyReadonlyArray4","PyReadonlyArray5","PyReadonlyArray6","PyReadonlyArrayDyn","PyReadwriteArray","PyReadwriteArray0","PyReadwriteArray1","PyReadwriteArray2","PyReadwriteArray3","PyReadwriteArray4","PyReadwriteArray5","PyReadwriteArray6","PyReadwriteArrayDyn","PyUntypedArray","PyUntypedArrayMethods","ToNpyDims","ToPyArray","TypeMustMatch","alignment","arguments","arguments","arguments","array","array","as_array_ptr","as_array_ptr","as_dtype_ptr","as_ptr","as_ptr","as_ref","as_ref","base","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","byteorder","char","clone","clone","clone_into","clone_into","cmp","cmp","convert","datetime","deref","deref","deref","dot","dtype","dtype","dtype","einsum","einsum","eq","eq","extract","extract_bound","extract_bound","flags","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from_borrowed_ptr_or_opt","from_borrowed_ptr_or_opt","from_owned_ptr_or_opt","from_owned_ptr_or_opt","from_py_object_bound","from_subset","from_subset","from_subset","from_subset","from_subset","from_subset","from_subset","from_subset","from_subset","from_subset","get_array_module","get_dtype","get_dtype","get_dtype","get_dtype","get_dtype","get_field","has_fields","has_object","has_subarray","hash","hash","im","im","inner","into","into","into","into","into","into","into","into","into","into","into_dtype_ptr","into_py","into_py","into_py","is_aligned_struct","is_c_contiguous","is_c_contiguous","is_c_contiguous","is_contiguous","is_contiguous","is_contiguous","is_empty","is_empty","is_empty","is_equiv_to","is_fortran_contiguous","is_fortran_contiguous","is_fortran_contiguous","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_native_byteorder","is_type_of","is_type_of_bound","itemsize","kind","len","len","len","nalgebra","names","ndarray","ndim","ndim","ndim","ndim","new","npyffi","num","object","of","partial_cmp","partial_cmp","pyarray","pyo3","re","re","shape","shape","shape","shape","strides","strides","strides","to_object","to_object","to_owned","to_owned","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from_exact","try_from_exact","try_from_unchecked","try_from_unchecked","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_check","type_check","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_object_raw","type_object_raw","typeobj","PyArray","PyArray0","PyArray1","PyArray2","PyArray3","PyArray4","PyArray5","PyArray6","PyArrayDyn","PyArrayMethods","arange","as_array","as_array_mut","as_ptr","as_raw_array","as_raw_array_mut","as_ref","as_slice","as_slice_mut","as_untyped","as_untyped","borrow","borrow_from_array","borrow_mut","cast","copy_to","data","deref","dims","extract_bound","fmt","fmt","from","from_array","from_borrowed_ptr","from_borrowed_ptr_or_opt","from_iter","from_owned_array","from_owned_object_array","from_owned_ptr","from_owned_ptr_or_opt","from_slice","from_subset","from_vec","from_vec2","from_vec3","get","get_array_module","get_mut","get_owned","into","into_py","into_py","is_in_subset","is_type_of_bound","item","new","readonly","readwrite","reshape","reshape_with_order","resize","to_dyn","to_object","to_owned","to_owned_array","to_string","to_subset","to_subset_unchecked","to_vec","try_as_matrix","try_as_matrix_mut","try_from","try_from","try_from_exact","try_from_unchecked","try_into","try_readonly","try_readwrite","type_check","type_id","type_object_raw","uget","uget_mut","uget_raw","zeros","PyReadonlyArray","PyReadonlyArray0","PyReadonlyArray1","PyReadonlyArray2","PyReadonlyArray3","PyReadonlyArray4","PyReadonlyArray5","PyReadonlyArray6","PyReadonlyArrayDyn","PyReadwriteArray","PyReadwriteArray0","PyReadwriteArray1","PyReadwriteArray2","PyReadwriteArray3","PyReadwriteArray4","PyReadwriteArray5","PyReadwriteArray6","PyReadwriteArrayDyn","as_array","as_array_mut","as_matrix","as_matrix","as_matrix_mut","as_matrix_mut","as_slice","as_slice_mut","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","deref","deref","drop","drop","extract","extract","fmt","fmt","from","from","from_py_object_bound","from_py_object_bound","from_subset","from_subset","get","get_mut","into","into","is_in_subset","is_in_subset","resize","to_owned","to_subset","to_subset","to_subset_unchecked","to_subset_unchecked","try_as_matrix","try_as_matrix_mut","try_from","try_from","try_into","try_into","type_id","type_id","Dim","Dim","IntoPyArray","Item","Item","NpyIndex","ToNpyDims","ToPyArray","into_pyarray","to_pyarray","ABBREV","Datetime","Timedelta","UNIT","Unit","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","cmp","cmp","eq","eq","fmt","fmt","from","from","from","from","from_subset","from_subset","get_dtype","get_dtype","hash","hash","into","into","is_in_subset","is_in_subset","partial_cmp","partial_cmp","to_owned","to_owned","to_subset","to_subset","to_subset_unchecked","to_subset_unchecked","try_from","try_from","try_into","try_into","type_id","type_id","units","Attoseconds","Days","Femtoseconds","Hours","Microseconds","Milliseconds","Minutes","Months","Nanoseconds","Picoseconds","Seconds","Weeks","Years","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from_subset","from_subset","from_subset","from_subset","from_subset","from_subset","from_subset","from_subset","from_subset","from_subset","from_subset","from_subset","from_subset","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","into","into","into","into","into","into","into","into","into","into","into","into","into","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","array","flags","objects","types","ufunc","NPY_NUMUSERTYPES","NpyIter_AdvancedNew","NpyIter_Copy","NpyIter_CreateCompatibleStrides","NpyIter_Deallocate","NpyIter_DebugPrint","NpyIter_EnableExternalLoop","NpyIter_GetAxisStrideArray","NpyIter_GetBufferSize","NpyIter_GetDataPtrArray","NpyIter_GetDescrArray","NpyIter_GetGetMultiIndex","NpyIter_GetIndexPtr","NpyIter_GetInitialDataPtrArray","NpyIter_GetInnerFixedStrideArray","NpyIter_GetInnerLoopSizePtr","NpyIter_GetInnerStrideArray","NpyIter_GetIterIndex","NpyIter_GetIterIndexRange","NpyIter_GetIterNext","NpyIter_GetIterSize","NpyIter_GetIterView","NpyIter_GetNDim","NpyIter_GetNOp","NpyIter_GetOperandArray","NpyIter_GetReadFlags","NpyIter_GetShape","NpyIter_GetWriteFlags","NpyIter_GotoIndex","NpyIter_GotoIterIndex","NpyIter_GotoMultiIndex","NpyIter_HasDelayedBufAlloc","NpyIter_HasExternalLoop","NpyIter_HasIndex","NpyIter_HasMultiIndex","NpyIter_IsBuffered","NpyIter_IsFirstVisit","NpyIter_IsGrowInner","NpyIter_IterationNeedsAPI","NpyIter_MultiNew","NpyIter_New","NpyIter_RemoveAxis","NpyIter_RemoveMultiIndex","NpyIter_RequiresBuffering","NpyIter_Reset","NpyIter_ResetBasePointers","NpyIter_ResetToIterIndexRange","NpyTypes","PY_ARRAY_API","PyArrayAPI","PyArrayDescr_Type","PyArrayFlags_Type","PyArrayIter_Type","PyArrayMultiIter_Type","PyArray_All","PyArray_Any","PyArray_Arange","PyArray_ArangeObj","PyArray_ArgMax","PyArray_ArgMin","PyArray_ArgPartition","PyArray_ArgSort","PyArray_As1D","PyArray_As2D","PyArray_AsCArray","PyArray_AxisConverter","PyArray_BoolConverter","PyArray_Broadcast","PyArray_BroadcastToShape","PyArray_BufferConverter","PyArray_ByteorderConverter","PyArray_Byteswap","PyArray_CanCastArrayTo","PyArray_CanCastSafely","PyArray_CanCastScalar","PyArray_CanCastTo","PyArray_CanCastTypeTo","PyArray_CanCoerceScalar","PyArray_CastAnyTo","PyArray_CastScalarDirect","PyArray_CastScalarToCtype","PyArray_CastTo","PyArray_CastToType","PyArray_CastingConverter","PyArray_Check","PyArray_CheckAnyScalarExact","PyArray_CheckAxis","PyArray_CheckExact","PyArray_CheckFromAny","PyArray_CheckStrides","PyArray_Choose","PyArray_Clip","PyArray_ClipmodeConverter","PyArray_CompareLists","PyArray_CompareString","PyArray_CompareUCS4","PyArray_Compress","PyArray_Concatenate","PyArray_Conjugate","PyArray_ConvertClipmodeSequence","PyArray_ConvertToCommonType","PyArray_Converter","PyArray_CopyAndTranspose","PyArray_CopyAnyInto","PyArray_CopyInto","PyArray_CopyObject","PyArray_Correlate","PyArray_Correlate2","PyArray_CountNonzero","PyArray_CreateSortedStridePerm","PyArray_CumProd","PyArray_CumSum","PyArray_DatetimeStructToDatetime","PyArray_DatetimeToDatetimeStruct","PyArray_DebugPrint","PyArray_DescrAlignConverter","PyArray_DescrAlignConverter2","PyArray_DescrConverter","PyArray_DescrConverter2","PyArray_DescrFromObject","PyArray_DescrFromScalar","PyArray_DescrFromType","PyArray_DescrFromTypeObject","PyArray_DescrNew","PyArray_DescrNewByteorder","PyArray_DescrNewFromType","PyArray_Diagonal","PyArray_Dump","PyArray_Dumps","PyArray_EinsteinSum","PyArray_ElementFromName","PyArray_ElementStrides","PyArray_Empty","PyArray_EnsureAnyArray","PyArray_EnsureArray","PyArray_EquivTypenums","PyArray_EquivTypes","PyArray_FailUnlessWriteable","PyArray_FieldNames","PyArray_FillObjectArray","PyArray_FillWithScalar","PyArray_Flatten","PyArray_Free","PyArray_FromAny","PyArray_FromArray","PyArray_FromArrayAttr","PyArray_FromBuffer","PyArray_FromDims","PyArray_FromDimsAndDataAndDescr","PyArray_FromFile","PyArray_FromInterface","PyArray_FromIter","PyArray_FromScalar","PyArray_FromString","PyArray_FromStructInterface","PyArray_GetArrayParamsFromObject","PyArray_GetCastFunc","PyArray_GetEndianness","PyArray_GetField","PyArray_GetNDArrayCFeatureVersion","PyArray_GetNDArrayCVersion","PyArray_GetNumericOps","PyArray_GetPriority","PyArray_GetPtr","PyArray_INCREF","PyArray_InitArrFuncs","PyArray_InnerProduct","PyArray_IntTupleFromIntp","PyArray_IntpConverter","PyArray_IntpFromSequence","PyArray_Item_INCREF","PyArray_Item_XDECREF","PyArray_IterAllButAxis","PyArray_IterNew","PyArray_LexSort","PyArray_MapIterArray","PyArray_MapIterArrayCopyIfOverlap","PyArray_MapIterNext","PyArray_MapIterSwapAxes","PyArray_MatrixProduct","PyArray_MatrixProduct2","PyArray_Max","PyArray_Mean","PyArray_Min","PyArray_MinScalarType","PyArray_MoveInto","PyArray_MultiplyIntList","PyArray_MultiplyList","PyArray_NeighborhoodIterNew","PyArray_New","PyArray_NewCopy","PyArray_NewFlagsObject","PyArray_NewFromDescr","PyArray_NewLikeArray","PyArray_Newshape","PyArray_Nonzero","PyArray_ObjectType","PyArray_One","PyArray_OrderConverter","PyArray_OutputConverter","PyArray_OverflowMultiplyList","PyArray_Partition","PyArray_Prod","PyArray_PromoteTypes","PyArray_Ptp","PyArray_PutMask","PyArray_PutTo","PyArray_PyIntAsInt","PyArray_PyIntAsIntp","PyArray_Ravel","PyArray_RegisterCanCast","PyArray_RegisterCastFunc","PyArray_RegisterDataType","PyArray_RemoveAxesInPlace","PyArray_RemoveSmallest","PyArray_Repeat","PyArray_Reshape","PyArray_Resize","PyArray_ResolveWritebackIfCopy","PyArray_ResultType","PyArray_Return","PyArray_Round","PyArray_Scalar","PyArray_ScalarAsCtype","PyArray_ScalarFromObject","PyArray_ScalarKind","PyArray_SearchSorted","PyArray_SearchsideConverter","PyArray_SelectkindConverter","PyArray_SetBaseObject","PyArray_SetDatetimeParseFunction","PyArray_SetField","PyArray_SetNumericOps","PyArray_SetStringFunction","PyArray_SetUpdateIfCopyBase","PyArray_SetWritebackIfCopyBase","PyArray_Size","PyArray_Sort","PyArray_SortkindConverter","PyArray_Squeeze","PyArray_Std","PyArray_Sum","PyArray_SwapAxes","PyArray_TakeFrom","PyArray_TimedeltaStructToTimedelta","PyArray_TimedeltaToTimedeltaStruct","PyArray_ToFile","PyArray_ToList","PyArray_ToString","PyArray_Trace","PyArray_Transpose","PyArray_Type","PyArray_TypeObjectFromType","PyArray_TypestrConvert","PyArray_UpdateFlags","PyArray_ValidType","PyArray_View","PyArray_Where","PyArray_XDECREF","PyArray_Zero","PyArray_Zeros","PyBigArray_Type","PyBoolArrType_Type","PyByteArrType_Type","PyCDoubleArrType_Type","PyCFloatArrType_Type","PyCLongDoubleArrType_Type","PyCharacterArrType_Type","PyComplexFloatingArrType_Type","PyDataMem_FREE","PyDataMem_NEW","PyDataMem_NEW_ZEROED","PyDataMem_RENEW","PyDataMem_SetEventHook","PyDoubleArrType_Type","PyFlexibleArrType_Type","PyFloatArrType_Type","PyFloatingArrType_Type","PyGenericArrType_Type","PyInexactArrType_Type","PyIntArrType_Type","PyIntegerArrType_Type","PyLongArrType_Type","PyLongDoubleArrType_Type","PyLongLongArrType_Type","PyNumberArrType_Type","PyObjectArrType_Type","PyShortArrType_Type","PySignedIntegerArrType_Type","PyStringArrType_Type","PyUByteArrType_Type","PyUIntArrType_Type","PyULongArrType_Type","PyULongLongArrType_Type","PyUShortArrType_Type","PyUnicodeArrType_Type","PyUnsignedIntegerArrType_Type","PyVoidArrType_Type","_PyArrayScalar_BoolValues","_PyArray_GetSigintBuf","_PyArray_SigintHandler","borrow","borrow","borrow_mut","borrow_mut","from","from","from_subset","from_subset","get_type_object","into","into","is_in_subset","is_in_subset","to_subset","to_subset","to_subset_unchecked","to_subset_unchecked","try_from","try_from","try_into","try_into","type_id","type_id","NPY_ALIGNED_STRUCT","NPY_ARRAY_ALIGNED","NPY_ARRAY_BEHAVED","NPY_ARRAY_BEHAVED_NS","NPY_ARRAY_CARRAY","NPY_ARRAY_CARRAY_RO","NPY_ARRAY_C_CONTIGUOUS","NPY_ARRAY_DEFAULT","NPY_ARRAY_ELEMENTSTRIDES","NPY_ARRAY_ENSUREARRAY","NPY_ARRAY_ENSURECOPY","NPY_ARRAY_FARRAY","NPY_ARRAY_FARRAY_RO","NPY_ARRAY_FORCECAST","NPY_ARRAY_F_CONTIGUOUS","NPY_ARRAY_INOUT_ARRAY","NPY_ARRAY_INOUT_ARRAY2","NPY_ARRAY_INOUT_FARRAY","NPY_ARRAY_INOUT_FARRAY2","NPY_ARRAY_IN_ARRAY","NPY_ARRAY_IN_FARRAY","NPY_ARRAY_NOTSWAPPED","NPY_ARRAY_OUT_ARRAY","NPY_ARRAY_OUT_FARRAY","NPY_ARRAY_OWNDATA","NPY_ARRAY_UPDATEIFCOPY","NPY_ARRAY_UPDATE_ALL","NPY_ARRAY_WRITEABLE","NPY_ARRAY_WRITEBACKIFCOPY","NPY_FROM_FIELDS","NPY_ITEM_HASOBJECT","NPY_ITEM_IS_POINTER","NPY_ITEM_REFCOUNT","NPY_ITER_ALIGNED","NPY_ITER_ALLOCATE","NPY_ITER_ARRAYMASK","NPY_ITER_BUFFERED","NPY_ITER_COMMON_DTYPE","NPY_ITER_CONTIG","NPY_ITER_COPY","NPY_ITER_COPY_IF_OVERLAP","NPY_ITER_C_INDEX","NPY_ITER_DELAY_BUFALLOC","NPY_ITER_DONT_NEGATE_STRIDES","NPY_ITER_EXTERNAL_LOOP","NPY_ITER_F_INDEX","NPY_ITER_GLOBAL_FLAGS","NPY_ITER_GROWINNER","NPY_ITER_MULTI_INDEX","NPY_ITER_NBO","NPY_ITER_NO_BROADCAST","NPY_ITER_NO_SUBTYPE","NPY_ITER_OVERLAP_ASSUME_ELEMENTWISE","NPY_ITER_PER_OP_FLAGS","NPY_ITER_RANGED","NPY_ITER_READONLY","NPY_ITER_READWRITE","NPY_ITER_REDUCE_OK","NPY_ITER_REFS_OK","NPY_ITER_UPDATEIFCOPY","NPY_ITER_VIRTUAL","NPY_ITER_WRITEMASKED","NPY_ITER_WRITEONLY","NPY_ITER_ZEROSIZE_OK","NPY_LIST_PICKLE","NPY_NEEDS_INIT","NPY_NEEDS_PYAPI","NPY_OBJECT_DTYPE_FLAGS","NPY_USE_GETITEM","NPY_USE_SETITEM","None","None","None","None","None","None","None","None","None","None","None","None","None","None","None","None","None","None","None","None","None","None","None","None","None","None","None","None","None","None","None","None","NpyAuxData","NpyAuxData_CloneFunc","NpyAuxData_FreeFunc","NpyIter","NpyIter_GetMultiIndexFunc","NpyIter_IterNextFunc","PyArrayFlagsObject","PyArrayInterface","PyArrayIterObject","PyArrayMapIterObject","PyArrayMultiIterObject","PyArrayNeighborhoodIterObject","PyArrayObject","PyArray_ArgFunc","PyArray_ArgPartitionFunc","PyArray_ArgSortFunc","PyArray_ArrFuncs","PyArray_ArrayDescr","PyArray_Chunk","PyArray_CompareFunc","PyArray_CopySwapFunc","PyArray_CopySwapNFunc","PyArray_DatetimeDTypeMetaData","PyArray_DatetimeMetaData","PyArray_Descr","PyArray_Dims","PyArray_DotFunc","PyArray_FastClipFunc","PyArray_FastPutmaskFunc","PyArray_FastTakeFunc","PyArray_FillFunc","PyArray_FillWithScalarFunc","PyArray_FromStrFunc","PyArray_GetItemFunc","PyArray_NonzeroFunc","PyArray_PartitionFunc","PyArray_ScalarKindFunc","PyArray_ScanFunc","PyArray_SetItemFunc","PyArray_SortFunc","PyArray_VectorUnaryFunc","PyDataMem_EventHookFunc","PyUFuncGenericFunction","PyUFuncObject","PyUFunc_LegacyInnerLoopSelectionFunc","PyUFunc_MaskedInnerLoopSelectionFunc","PyUFunc_MaskedStridedInnerLoopFunc","PyUFunc_TypeResolutionFunc","Some","Some","Some","Some","Some","Some","Some","Some","Some","Some","Some","Some","Some","Some","Some","Some","Some","Some","Some","Some","Some","Some","Some","Some","Some","Some","Some","Some","Some","Some","Some","Some","_internal_iter","ait","alignment","ao","ao","argmax","argmin","argsort","arr","array","backstrides","backstrides","base","base","base","base","base","baseoffset","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","bounds","bounds","byteorder","c_metadata","cancastscalarkindto","cancastto","cast","castdict","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","compare","consec","constant","contiguous","contiguous","coordinates","coordinates","copyswap","copyswapn","core_dim_ixs","core_enabled","core_num_dim_ix","core_num_dims","core_offsets","core_signature","data","data","data","dataptr","dataptr","dataptr","descr","descr","dimensions","dimensions","dimensions","dimensions","dims_m1","dims_m1","doc","dotfunc","elsize","extra_op","extra_op_dtype","extra_op_flags","extra_op_iter","extra_op_next","extra_op_ptrs","f","factors","factors","fancy_dims","fancy_strides","fastclip","fastputmask","fasttake","fields","fill","fillwithscalar","flags","flags","flags","flags","flags","fmt","free","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_subset","from_subset","from_subset","from_subset","from_subset","from_subset","from_subset","from_subset","from_subset","from_subset","from_subset","from_subset","from_subset","from_subset","from_subset","from_subset","from_subset","fromstr","functions","getitem","hash","identity","index","index","index","index","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","itemsize","iter_count","iter_flags","iteraxes","iters","kind","legacy_inner_loop_selector","len","len","limits","limits","limits_sizes","limits_sizes","masked_inner_loop_selector","meta","metadata","mode","name","names","nargs","nd","nd","nd","nd","nd","nd_fancy","nd_m1","nd_m1","needs_api","nin","nonzero","nout","npy_iter_get_dataptr_t","ntypes","num","numiter","numiter","ob_base","ob_base","ob_base","ob_base","ob_base","ob_base","ob_base","ob_base","ob_base","obj","op_flags","outer","outer_next","outer_ptrs","outer_strides","ptr","ptr","ptr","reserved","reserved1","reserved2","scalarkind","scanfunc","setitem","shape","shape","size","size","size","size","sort","strides","strides","strides","strides","subarray","subspace","subspace_iter","subspace_next","subspace_ptrs","subspace_strides","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","translate","translate","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","two","type_","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_num","type_resolver","typekind","typeobj","types","unused","userloops","weakreflist","NPY_ANYORDER","NPY_BIG","NPY_BOOL","NPY_BOOLLTR","NPY_BOOL_SCALAR","NPY_BYTE","NPY_BYTELTR","NPY_BYTEORDER_CHAR","NPY_CASTING","NPY_CDOUBLE","NPY_CDOUBLELTR","NPY_CFLOAT","NPY_CFLOATLTR","NPY_CHAR","NPY_CHARLTR","NPY_CLIP","NPY_CLIPMODE","NPY_CLONGDOUBLE","NPY_CLONGDOUBLELTR","NPY_COMPLEXLTR","NPY_COMPLEX_SCALAR","NPY_CORDER","NPY_DATETIME","NPY_DATETIMELTR","NPY_DATETIMEUNIT","NPY_DOUBLE","NPY_DOUBLELTR","NPY_EQUIV_CASTING","NPY_FLOAT","NPY_FLOATINGLTR","NPY_FLOATLTR","NPY_FLOAT_SCALAR","NPY_FORTRANORDER","NPY_FR_D","NPY_FR_GENERIC","NPY_FR_M","NPY_FR_W","NPY_FR_Y","NPY_FR_as","NPY_FR_fs","NPY_FR_h","NPY_FR_m","NPY_FR_ms","NPY_FR_ns","NPY_FR_ps","NPY_FR_s","NPY_FR_us","NPY_GENBOOLLTR","NPY_HALF","NPY_HALFLTR","NPY_HEAPSORT","NPY_IGNORE","NPY_INT","NPY_INTLTR","NPY_INTNEG_SCALAR","NPY_INTPLTR","NPY_INTPOS_SCALAR","NPY_INTROSELECT","NPY_KEEPORDER","NPY_LITTLE","NPY_LONG","NPY_LONGDOUBLE","NPY_LONGDOUBLELTR","NPY_LONGLONG","NPY_LONGLONGLTR","NPY_LONGLTR","NPY_MERGESORT","NPY_NATBYTE","NPY_NATIVE","NPY_NOSCALAR","NPY_NOTYPE","NPY_NO_CASTING","NPY_NTYPES","NPY_OBJECT","NPY_OBJECTLTR","NPY_OBJECT_SCALAR","NPY_OPPBYTE","NPY_ORDER","NPY_QUICKSORT","NPY_RAISE","NPY_SAFE_CASTING","NPY_SAME_KIND_CASTING","NPY_SCALARKIND","NPY_SEARCHLEFT","NPY_SEARCHRIGHT","NPY_SEARCHSIDE","NPY_SELECTKIND","NPY_SHORT","NPY_SHORTLTR","NPY_SIGNEDLTR","NPY_SORTKIND","NPY_STRING","NPY_STRINGLTR","NPY_STRINGLTR2","NPY_SWAP","NPY_TIMEDELTA","NPY_TIMEDELTALTR","NPY_TYPECHAR","NPY_TYPEKINDCHAR","NPY_TYPES","NPY_UBYTE","NPY_UBYTELTR","NPY_UINT","NPY_UINTLTR","NPY_UINTPLTR","NPY_ULONG","NPY_ULONGLONG","NPY_ULONGLONGLTR","NPY_ULONGLTR","NPY_UNICODE","NPY_UNICODELTR","NPY_UNSAFE_CASTING","NPY_UNSIGNEDLTR","NPY_USERDEF","NPY_USHORT","NPY_USHORTLTR","NPY_VOID","NPY_VOIDLTR","NPY_WRAP","as_","as_","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","day","day","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_subset","from_subset","from_subset","from_subset","from_subset","from_subset","from_subset","from_subset","from_subset","from_subset","from_subset","from_subset","from_subset","from_subset","from_subset","from_subset","from_subset","from_subset","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hour","imag","imag","imag","imag","imag","imag","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","min","month","npy_bool","npy_byte","npy_cdouble","npy_cfloat","npy_char","npy_clongdouble","npy_complex128","npy_complex256","npy_complex64","npy_datetime","npy_datetimestruct","npy_double","npy_float","npy_float128","npy_float16","npy_float32","npy_float64","npy_half","npy_hash_t","npy_int","npy_int16","npy_int32","npy_int64","npy_int8","npy_intp","npy_long","npy_longdouble","npy_longlong","npy_short","npy_stride_sort_item","npy_timedelta","npy_timedeltastruct","npy_ubyte","npy_ucs4","npy_uint","npy_uint16","npy_uint32","npy_uint64","npy_uint8","npy_uintp","npy_ulong","npy_ulonglong","npy_ushort","partial_cmp","perm","ps","ps","real","real","real","real","real","real","sec","sec","stride","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","us","us","year","PY_UFUNC_API","PyUFuncAPI","PyUFunc_DD_D","PyUFunc_D_D","PyUFunc_DefaultTypeResolver","PyUFunc_FF_F","PyUFunc_FF_F_As_DD_D","PyUFunc_F_F","PyUFunc_F_F_As_D_D","PyUFunc_FromFuncAndData","PyUFunc_FromFuncAndDataAndSignature","PyUFunc_FromFuncAndDataAndSignatureAndIdentity","PyUFunc_GG_G","PyUFunc_G_G","PyUFunc_GenericFunction","PyUFunc_GetPyValues","PyUFunc_OO_O","PyUFunc_OO_O_method","PyUFunc_O_O","PyUFunc_O_O_method","PyUFunc_On_Om","PyUFunc_RegisterLoopForDescr","PyUFunc_RegisterLoopForType","PyUFunc_ReplaceLoopBySignature","PyUFunc_SetUsesArraysAsData","PyUFunc_ValidateCasting","PyUFunc_checkfperr","PyUFunc_clearfperr","PyUFunc_d_d","PyUFunc_dd_d","PyUFunc_e_e","PyUFunc_e_e_As_d_d","PyUFunc_e_e_As_f_f","PyUFunc_ee_e","PyUFunc_ee_e_As_dd_d","PyUFunc_ee_e_As_ff_f","PyUFunc_f_f","PyUFunc_f_f_As_d_d","PyUFunc_ff_f","PyUFunc_ff_f_As_dd_d","PyUFunc_g_g","PyUFunc_getfperr","PyUFunc_gg_g","PyUFunc_handlefperr","borrow","borrow_mut","from","from_subset","into","is_in_subset","to_subset","to_subset_unchecked","try_from","try_into","type_id"],"q":[[0,"numpy"],[335,"numpy::array"],[421,"numpy::borrow"],[487,"numpy::convert"],[497,"numpy::datetime"],[545,"numpy::datetime::units"],[805,"numpy::npyffi"],[810,"numpy::npyffi::array"],[1134,"numpy::npyffi::flags"],[1204,"numpy::npyffi::objects"],[1736,"numpy::npyffi::types"],[2217,"numpy::npyffi::ufunc"],[2272,"ndarray::dimension::dim"],[2273,"ndarray::dimension::dynindeximpl"],[2274,"pyo3::marker"],[2275,"pyo3::instance"],[2276,"pyo3_ffi::object"],[2277,"pyo3::types::any"],[2278,"core::cmp"],[2279,"ndarray::dimension::dimension_trait"],[2280,"pyo3::err"],[2281,"pyo3::instance"],[2282,"core::fmt"],[2283,"core::fmt"],[2284,"core::fmt"],[2285,"pyo3_ffi::unicodeobject"],[2286,"pyo3::err"],[2287,"pyo3::instance"],[2288,"pyo3::conversion"],[2289,"core::marker"],[2290,"std::os::raw"],[2291,"pyo3::err"],[2292,"core::any"],[2293,"pyo3_ffi::cpython::object"],[2294,"pyo3::types::typeobject"],[2295,"num_traits::cast"],[2296,"ndarray"],[2297,"ndarray"],[2298,"core::iter::traits::collect"],[2299,"ndarray"],[2300,"ndarray::aliases"],[2301,"core::marker"],[2302,"nalgebra::base::matrix_view"],[2303,"nalgebra::base::scalar"],[2304,"nalgebra::base::dimension"],[2305,"nalgebra::base::matrix_view"],[2306,"nalgebra::base::alias_view"],[2307,"core::cmp"],[2308,"std::os::raw"]],"d":["Marker type to indicate that the element type received via …","The given array is already borrowed","Inidcates why borrowing an array failed.","","","Represents that a type can be an element of PyArray.","Represents that given Vec cannot be treated as an array.","Flag that indicates whether this type is trivially …","","Create a one-dimensional index","one-dimensional","Create a two-dimensional index","two-dimensional","Create a three-dimensional index","three-dimensional","Create a four-dimensional index","four-dimensional","Create a five-dimensional index","five-dimensional","Create a six-dimensional index","six-dimensional","Create a dynamic-dimensional index","dynamic-dimensional","Represents that the given array is not contiguous.","The given array is not writeable","","","","","","","","","","","","Binding of numpy.dtype.","","Receiver for arrays or array-like types.","Receiver for zero-dimensional arrays or array-like types.","Receiver for one-dimensional arrays or array-like types.","Receiver for two-dimensional arrays or array-like types.","Receiver for three-dimensional arrays or array-like types.","Receiver for four-dimensional arrays or array-like types.","Receiver for five-dimensional arrays or array-like types.","Receiver for six-dimensional arrays or array-like types.","Receiver for arrays or array-like types whose …","","A newtype wrapper around [u8; N] to handle byte scalars …","A newtype wrapper around [PyUCS4; N] to handle str_ scalars…","","","","","","","","","","","","","","","","","","","A safe, untyped wrapper for NumPy’s ndarray class.","Implementation of functionality for PyUntypedArray.","","","Marker type to indicate that the element type received via …","Returns the required alignment (bytes) of this type …","","","","Safe interface for NumPy’s N-dimensional arrays","Create an Array with one, two or three dimensions.","Returns a raw pointer to the underlying PyArrayObject.","Returns a raw pointer to the underlying PyArrayObject.","Returns self as *mut PyArray_Descr.","Gets the underlying FFI pointer, returns a borrowed …","Gets the underlying FFI pointer, returns a borrowed …","","","Returns the type descriptor for the base element of …","Types to safely create references into NumPy arrays","","","","","","","","","","","","","","","","","","","","","Returns an ASCII character indicating the byte-order of …","Returns a unique ASCII character for each of the 21 …","","","","","","","Defines conversion traits between Rust types and NumPy …","Support datetimes and timedeltas","","","","Return the dot product of two arrays.","Returns the type descriptor (“dtype”) for a registered …","Returns the dtype of the array.","Returns the dtype of the array.","Return the Einstein summation convention of given tensors.","Return the Einstein summation convention of given tensors.","","","","","","Returns bit-flags describing how this type descriptor is …","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","Returns the argument unchanged.","","","","","","","","","","","","","","","","","Returns the associated type descriptor (“dtype”) for …","","","","","Returns the type descriptor and offset of the field with …","Returns true if the type descriptor is a structured type.","Returns true if the type descriptor contains any …","Returns true if the type descriptor is a sub-array.","","","Imaginary portion of the complex number","Imaginary portion of the complex number","Return the inner product of two arrays.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Returns self as *mut PyArray_Descr while increasing the …","","","","Returns true if the type descriptor is a struct which …","Returns true if the internal data of the array is …","Returns true if the internal data of the array is …","Returns true if the internal data of the array is …","Returns true if the internal data of the array is …","Returns true if the internal data of the array is …","Returns true if the internal data of the array is …","Returns true if the there are no elements in the array.","Returns true if the there are no elements in the array.","Returns true if the there are no elements in the array.","Returns true if two type descriptors are equivalent.","Returns true if the internal data of the array is …","Returns true if the internal data of the array is …","Returns true if the internal data of the array is …","","","","","","","","","","","Returns true if type descriptor byteorder is native, or …","","","Returns the element size of this type descriptor.","Returns an ASCII character (one of biufcmMOSUV) …","Calculates the total number of elements in the array.","Calculates the total number of elements in the array.","Calculates the total number of elements in the array.","","Returns an ordered list of field names, or None if there …","","Returns the number of dimensions if this type descriptor …","Returns the number of dimensions of the array.","Returns the number of dimensions of the array.","Returns the number of dimensions of the array.","Creates a new type descriptor (“dtype”) object from an …","Low-Level bindings for NumPy C API.","Returns a unique number for each of the 21 different …","Shortcut for creating a type descriptor of object type.","Returns the type descriptor for a registered type.","","","Create a PyArray with one, two or three dimensions.","","Real portion of the complex number","Real portion of the complex number","Returns the shape of the sub-array.","Returns a slice which contains dimmensions of the array.","Returns a slice which contains dimmensions of the array.","Returns a slice which contains dimmensions of the array.","Returns a slice indicating how many bytes to advance when …","Returns a slice indicating how many bytes to advance when …","Returns a slice indicating how many bytes to advance when …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the array scalar corresponding to this type …","A safe, statically-typed wrapper for NumPy’s ndarray …","Zero-dimensional array.","One-dimensional array.","Two-dimensional array.","Three-dimensional array.","Four-dimensional array.","Five-dimensional array.","Six-dimensional array.","Dynamic-dimensional array.","Implementation of functionality for PyArray<T, D>.","Return evenly spaced values within a given interval.","Returns an ArrayView of the internal array.","Returns an ArrayViewMut of the internal array.","","Returns the internal array as RawArrayView enabling …","Returns the internal array as RawArrayViewMut enabling …","","Returns an immutable view of the internal data as a slice.","Returns a mutable view of the internal data as a slice.","Access an untyped representation of this array.","Access an untyped representation of this array.","","Creates a NumPy array backed by array and ties its …","","Cast the PyArray<T> to PyArray<U>, by allocating a new …","Copies self into other, performing a data type conversion …","Returns a pointer to the first element of the array.","","Same as shape, but returns D instead of &[usize].","","","","Returns the argument unchanged.","Construct a NumPy array from a ndarray::ArrayBase.","Constructs a reference to a PyArray from a raw point to a …","","Construct a one-dimensional array from an Iterator.","Constructs a NumPy from an ndarray::Array","Construct a NumPy array containing objects stored in a …","Constructs a reference to a PyArray from a raw pointer to …","","Construct a one-dimensional array from a slice.","","Construct a one-dimensional array from a Vec<T>.","Construct a two-dimension array from a Vec<Vec<T>>.","Construct a three-dimensional array from a Vec<Vec<Vec<T>>>…","Get a reference of the specified element if the given …","Returns a handle to NumPy’s multiarray module.","Same as get, but returns Option<&mut T>.","Get a copy of the specified element in the array.","Calls U::from(self).","","","","","Get the single element of a zero-dimensional array.","Creates a new uninitialized NumPy array.","Get an immutable borrow of the NumPy array","Get a mutable borrow of the NumPy array","Special case of reshape_with_order which keeps the memory …","Construct a new array which has same values as self, but …","Extends or truncates the dimensions of an array.","Turn an array with fixed dimensionality into one with …","","Turn &PyArray<T,D> into Py<PyArray<T,D>>, i.e. a pointer …","Get a copy of the array as an ndarray::Array.","","","","Returns a copy of the internal data of the array as a Vec.","Try to convert this array into a nalgebra::MatrixView …","Try to convert this array into a nalgebra::MatrixViewMut …","","","","","","Get an immutable borrow of the NumPy array","Get a mutable borrow of the NumPy array","","","","Get an immutable reference of the specified element, …","Same as uget, but returns &mut T.","Same as uget, but returns *mut T.","Construct a new NumPy array filled with zeros.","Read-only borrow of an array.","Read-only borrow of a zero-dimensional array.","Read-only borrow of a one-dimensional array.","Read-only borrow of a two-dimensional array.","Read-only borrow of a three-dimensional array.","Read-only borrow of a four-dimensional array.","Read-only borrow of a five-dimensional array.","Read-only borrow of a six-dimensional array.","Read-only borrow of an array whose dimensionality is …","Read-write borrow of an array.","Read-write borrow of a zero-dimensional array.","Read-write borrow of a one-dimensional array.","Read-write borrow of a two-dimensional array.","Read-write borrow of a three-dimensional array.","Read-write borrow of a four-dimensional array.","Read-write borrow of a five-dimensional array.","Read-write borrow of a six-dimensional array.","Read-write borrow of an array whose dimensionality is …","Provides an immutable array view of the interior of the …","Provides a mutable array view of the interior of the NumPy …","Convert this one-dimensional array into a …","Convert this two-dimensional array into a …","Convert this one-dimensional array into a …","Convert this two-dimensional array into a …","Provide an immutable slice view of the interior of the …","Provide a mutable slice view of the interior of the NumPy …","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","","Provide an immutable reference to an element of the NumPy …","Provide a mutable reference to an element of the NumPy …","Calls U::from(self).","Calls U::from(self).","","","Extends or truncates the dimensions of an array.","","","","","","Try to convert this array into a nalgebra::MatrixView …","Try to convert this array into a nalgebra::MatrixViewMut …","","","","","","","The dimension type of the resulting array.","The dimension type of the resulting array.","Conversion trait from owning Rust types into PyArray.","The element type of resulting array.","The element type of resulting array.","Trait implemented by types that can be used to index an …","Utility trait to specify the dimensions of an array.","Conversion trait from borrowing Rust types to PyArray.","Consumes self and moves its data into a NumPy array.","Copies the content pointed to by &self into a newly …","The abbrevation used for debug formatting","Corresponds to the datetime64 scalar type","Corresponds to the [timedelta64][scalars-datetime64] …","The matching NumPy datetime unit code","Represents the datetime units supported by NumPy","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","Predefined implementors of the Unit trait","Attoseconds, i.e. 10^-18 seconds","Days, i.e. 24 hours","Femtoseconds, i.e. 10^-15 seconds","Hours, i.e. 60 minutes","Microseconds, i.e. 10^-6 seconds","Milliseconds, i.e. 10^-3 seconds","Minutes, i.e. 60 seconds","Months, i.e. 30 days","Nanoseconds, i.e. 10^-9 seconds","Picoseconds, i.e. 10^-12 seconds","Seconds","Weeks, i.e. 7 days","Years, i.e. 12 months","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","","","","","","","","","","","","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Low-Level binding for Array API","","Low-Lebel binding for NumPy C API C-objects","","Low-Level binding for UFunc API","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","All type objects exported by the NumPy API.","A global variable which stores a ‘capsule’ pointer to …","See PY_ARRAY_API for more.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Checks that op is an instance of PyArray or not.","","","Checks that op is an exact instance of PyArray or not.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Get a pointer of the type object assocaited with ty.","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","No value.","No value.","No value.","No value.","No value.","No value.","No value.","No value.","No value.","No value.","No value.","No value.","No value.","No value.","No value.","No value.","No value.","No value.","No value.","No value.","No value.","No value.","No value.","No value.","No value.","No value.","No value.","No value.","No value.","No value.","No value.","No value.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Some value of type T.","Some value of type T.","Some value of type T.","Some value of type T.","Some value of type T.","Some value of type T.","Some value of type T.","Some value of type T.","Some value of type T.","Some value of type T.","Some value of type T.","Some value of type T.","Some value of type T.","Some value of type T.","Some value of type T.","Some value of type T.","Some value of type T.","Some value of type T.","Some value of type T.","Some value of type T.","Some value of type T.","Some value of type T.","Some value of type T.","Some value of type T.","Some value of type T.","Some value of type T.","Some value of type T.","Some value of type T.","Some value of type T.","Some value of type T.","Some value of type T.","Some value of type T.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","","","","","","","","","","","","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","A global variable which stores a ‘capsule’ pointer to …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","",""],"i":[0,11,0,0,0,0,0,24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,7,10,11,0,0,12,14,6,6,14,6,14,6,0,6,14,36,38,23,7,10,11,19,20,6,14,36,38,23,7,10,11,19,20,6,6,19,20,19,20,19,20,0,0,6,14,23,0,0,12,14,0,0,19,20,23,6,14,6,6,6,14,14,36,38,23,7,7,10,10,11,11,19,19,20,20,6,14,36,38,23,7,10,11,19,19,20,20,6,14,6,14,23,6,14,36,38,23,7,10,11,19,20,0,24,163,164,19,20,6,6,6,6,19,20,163,164,0,6,14,36,38,23,7,10,11,19,20,6,6,14,14,6,14,12,12,14,12,12,14,12,12,6,14,12,12,6,14,36,38,23,7,10,11,19,20,6,6,14,6,6,14,12,12,0,6,0,6,14,12,12,6,0,6,6,6,19,20,0,0,163,164,6,14,12,12,14,12,12,6,14,19,20,6,14,7,10,11,19,20,6,14,36,38,23,7,10,11,19,20,6,14,36,38,23,7,10,11,19,20,6,6,14,14,36,38,23,7,10,11,19,20,6,14,6,14,6,14,36,38,23,7,10,11,19,20,6,14,6,14,36,38,23,7,10,11,19,20,6,14,6,0,0,0,0,0,0,0,0,0,0,26,26,26,26,26,26,26,26,26,64,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,0,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,79,80,79,79,80,80,79,80,79,80,79,80,79,79,79,80,79,80,79,80,79,80,79,80,79,80,79,80,79,80,79,80,79,80,80,79,79,80,79,80,79,80,79,80,79,80,79,80,89,90,0,89,90,0,0,0,89,90,93,0,0,93,0,91,94,91,94,91,94,91,94,91,94,91,94,91,94,91,91,94,94,91,94,91,94,91,94,91,94,91,94,91,94,91,94,91,94,91,94,91,94,91,94,91,94,0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,101,102,103,104,105,106,107,108,109,110,111,112,100,101,102,103,104,105,106,107,108,109,110,111,112,100,101,102,103,104,105,106,107,108,109,110,111,112,100,101,102,103,104,105,106,107,108,109,110,111,112,100,101,102,103,104,105,106,107,108,109,110,111,112,100,101,102,103,104,105,106,107,108,109,110,111,112,100,101,102,103,104,105,106,107,108,109,110,111,112,100,101,102,103,104,105,106,107,108,109,110,111,112,100,101,102,103,104,105,106,107,108,109,110,111,112,100,101,102,103,104,105,106,107,108,109,110,111,112,100,101,102,103,104,105,106,107,108,109,110,111,112,100,101,102,103,104,105,106,107,108,109,110,111,112,100,101,102,103,104,105,106,107,108,109,110,111,112,100,101,102,103,104,105,106,107,108,109,110,111,112,100,101,102,103,104,105,106,107,108,109,110,111,112,100,101,102,103,104,105,106,107,108,109,110,111,112,100,101,102,103,104,105,106,107,108,109,110,111,112,100,101,102,103,104,105,106,107,108,109,110,111,112,100,101,102,103,104,105,106,107,108,109,110,111,112,0,0,0,0,0,145,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,0,0,0,145,145,145,145,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,0,113,113,0,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,145,113,113,113,113,113,113,113,113,113,145,145,145,145,145,145,145,145,113,113,113,113,113,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,113,113,113,145,113,145,113,145,113,145,113,113,145,113,145,113,145,113,145,113,145,113,145,113,145,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,165,166,167,168,169,170,171,172,135,173,174,175,176,177,178,179,180,181,182,183,184,162,185,186,187,188,119,118,144,189,190,191,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,165,166,167,168,169,170,171,172,135,173,174,175,176,177,178,179,180,181,182,183,184,162,185,186,187,188,119,118,144,189,190,191,150,139,15,140,150,137,137,137,147,139,140,150,13,146,125,152,153,139,13,15,146,137,147,138,125,148,149,117,140,124,150,139,151,152,153,13,15,146,137,147,138,125,148,149,117,140,124,150,139,151,152,153,140,150,15,15,137,137,137,137,13,15,146,137,147,138,125,148,149,117,140,124,150,139,151,152,153,151,13,15,146,137,147,138,125,148,149,117,140,124,150,139,151,152,153,137,139,150,140,150,140,150,137,137,149,149,149,149,149,149,13,148,149,140,150,139,13,148,13,124,150,139,140,150,149,137,15,139,139,139,139,139,139,15,140,150,139,139,137,137,137,15,137,137,13,15,147,125,148,117,151,13,15,146,137,147,138,125,148,149,117,140,124,150,139,151,152,153,13,15,146,137,147,138,125,148,149,117,140,124,150,139,151,152,153,137,149,137,15,149,140,124,150,139,13,15,146,137,147,138,125,148,149,117,140,124,150,139,151,152,153,13,15,146,137,147,138,125,148,149,117,140,124,150,139,151,152,153,148,139,149,139,124,15,149,138,125,140,150,140,150,149,153,15,150,149,15,149,13,148,124,150,139,139,140,150,139,149,137,149,0,149,152,124,139,13,15,147,125,149,140,124,150,139,149,149,139,139,139,139,138,125,149,151,149,149,137,137,137,146,148,140,124,150,139,137,13,148,140,150,15,139,139,139,139,139,13,15,146,137,147,138,125,148,149,117,140,124,150,139,151,152,153,13,15,146,137,147,138,125,148,149,117,140,124,150,139,151,152,153,13,15,146,137,147,138,125,148,149,117,140,124,150,139,151,152,153,140,150,13,15,146,137,147,138,125,148,149,117,140,124,150,139,151,152,153,13,15,146,137,147,138,125,148,149,117,140,124,150,139,151,152,153,148,15,13,15,146,137,147,138,125,148,149,117,140,124,150,139,151,152,153,15,149,148,15,149,139,149,13,81,160,157,158,126,157,158,0,0,157,158,157,158,157,158,127,0,157,158,159,126,81,157,158,0,157,158,115,157,159,158,126,81,130,130,130,130,130,130,130,130,130,130,130,130,130,130,159,157,158,122,160,157,158,126,158,126,121,81,160,157,157,158,157,158,158,122,160,160,126,157,115,157,157,158,126,160,0,122,127,115,115,0,141,141,0,0,157,158,159,0,157,158,158,160,157,158,0,0,0,157,158,157,158,158,157,157,158,158,157,158,115,159,157,157,158,157,158,127,131,142,154,155,156,81,126,122,141,130,157,121,115,127,131,142,129,158,159,160,154,155,156,81,126,122,141,130,157,121,115,127,131,142,129,158,159,160,154,155,156,81,126,122,141,130,157,121,115,127,131,142,129,158,159,160,154,155,156,81,126,122,141,130,157,121,115,127,131,142,129,158,159,160,157,131,142,81,126,122,141,130,157,121,115,127,160,154,155,156,81,126,122,141,130,157,121,115,131,142,129,158,159,160,154,155,156,81,126,122,141,130,157,121,115,127,131,142,129,158,159,160,154,155,156,81,126,122,141,130,157,121,115,127,131,142,129,158,159,160,81,126,122,141,130,157,121,115,127,160,131,192,193,194,154,155,156,154,155,156,81,126,122,141,130,157,121,115,127,131,142,129,158,159,160,154,155,156,81,126,122,141,130,157,121,115,127,131,142,129,158,159,160,131,131,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,157,129,131,142,192,193,194,154,155,156,131,142,129,154,155,156,81,126,122,141,130,157,121,115,127,131,142,129,158,159,160,154,155,156,81,126,122,141,130,157,121,115,127,131,142,129,158,159,160,154,155,156,81,126,122,141,130,157,121,115,127,131,142,129,158,159,160,154,155,156,81,126,122,141,130,157,121,115,127,131,142,129,158,159,160,154,155,156,81,126,122,141,130,157,121,115,127,131,142,129,158,159,160,154,155,156,81,126,122,141,130,157,121,115,127,131,142,129,158,159,160,131,142,131,0,0,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161],"f":[0,0,0,0,0,0,0,0,0,[1,[[3,[[2,[1]]]]]],0,[[1,1],[[3,[[2,[1]]]]]],0,[[1,1,1],[[3,[[2,[1]]]]]],0,[[1,1,1,1],[[3,[[2,[1]]]]]],0,[[1,1,1,1,1],[[3,[[2,[1]]]]]],0,[[1,1,1,1,1,1],[[3,[[2,[1]]]]]],0,[[[4,[1]]],[[3,[5]]]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[6,1],[[7,8],9],[[10,8],9],[[11,8],9],0,0,[12,13],[14,13],[6,15],[6,16],[14,16],[6,17],[14,17],[6,6],0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[6,18],[6,18],[19,19],[20,20],[[-1,-2],21,[],[]],[[-1,-2],21,[],[]],[[19,19],22],[[20,20],22],0,0,[6,17],[14,17],[[[23,[-1,-2,-3]]],-4,24,25,0,[]],[[[26,[-1,-2]],[26,[-1,-3]]],[[27,[-4]]],24,25,25,[[0,[-1]]]],[8,6],[12,[[28,[6]]]],[14,6],[[29,[4,[[26,[-1,30]]]]],[[27,[-2]]],24,[[0,[-1]]]],0,[[19,19],31],[[20,20],31],[17,[[27,[[23,[-1,-2,-3]]]]],24,25,0],[[[28,[17]]],[[27,[6]]]],[[[28,[17]]],[[27,[14]]]],[6,32],[[6,33],[[35,[21,34]]]],[[6,33],[[35,[21,34]]]],[[14,33],[[35,[21,34]]]],[[14,33],[[35,[21,34]]]],[[36,33],37],[[38,33],37],[[[23,[-1,-2,-3]],33],37,[24,39],[25,39],[0,39]],[[7,33],37],[[7,33],37],[[10,33],37],[[10,33],37],[[11,33],37],[[11,33],37],[[19,33],37],[[19,33],37],[[20,33],37],[[20,33],37],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[2,[40]]],19],[-1,-1,[]],[[[2,[41]]],20],[-1,-1,[]],[[8,16],[[42,[-1]]],[]],[[8,16],[[42,[-1]]],[]],[[8,16],[[42,[-1]]],[]],[[8,16],[[42,[-1]]],[]],[[[28,[17]]],[[35,[-1,43]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,[8,6],[8,6],[8,6],[8,6],[8,6],[[6,29],[[27,[[21,[6,1]]]]]],[6,31],[6,31],[6,31],[[19,-1],21,44],[[20,-1],21,44],0,0,[[[26,[-1,-2]],[26,[-1,-3]]],[[27,[-4]]],24,25,25,[[0,[-1]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[6,15],[[6,8],[[45,[6]]]],[[14,8],9],[[14,8],[[45,[14]]]],[6,31],[14,31],[12,31],[12,31],[14,31],[12,31],[12,31],[14,31],[12,31],[12,31],[[6,6],31],[14,31],[12,31],[12,31],[-1,31,[]],[-1,31,[]],[-1,31,[]],[-1,31,[]],[-1,31,[]],[-1,31,[]],[-1,31,[]],[-1,31,[]],[-1,31,[]],[-1,31,[]],[6,[[42,[31]]]],[17,31],[[[28,[17]]],31],[6,1],[6,18],[14,1],[12,1],[12,1],0,[6,[[42,[[46,[29]]]]]],0,[6,1],[14,1],[12,1],[12,1],[[8,-1],[[27,[6]]],[47,48]],0,[6,49],[8,6],[8,6],[[19,19],[[42,[22]]]],[[20,20],[[42,[22]]]],0,0,0,0,[6,[[46,[1]]]],[14,[[4,[1]]]],[12,[[4,[1]]]],[12,[[4,[1]]]],[14,[[4,[50]]]],[12,[[4,[50]]]],[12,[[4,[50]]]],[[6,8],9],[[14,8],9],[-1,-2,[],[]],[-1,-2,[],[]],[-1,51,[]],[-1,51,[]],[-1,51,[]],[-1,51,[]],[-1,51,[]],[-1,51,[]],[-1,51,[]],[-1,[[42,[-2]]],[],[]],[-1,[[42,[-2]]],[],[]],[-1,[[42,[-2]]],[],[]],[-1,[[42,[-2]]],[],[]],[-1,[[42,[-2]]],[],[]],[-1,[[42,[-2]]],[],[]],[-1,[[42,[-2]]],[],[]],[-1,[[42,[-2]]],[],[]],[-1,[[42,[-2]]],[],[]],[-1,[[42,[-2]]],[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2,52]]],[[53,[17]]],[]],[-1,[[35,[-2,52]]],[[53,[17]]],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2,52]]],[[53,[17]]],[]],[-1,[[35,[-2,52]]],[[53,[17]]],[]],[-1,-2,[[53,[17]]],[]],[-1,-2,[[53,[17]]],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[[[28,[17]]],31],[[[28,[17]]],31],[-1,54,[]],[-1,54,[]],[-1,54,[]],[-1,54,[]],[-1,54,[]],[-1,54,[]],[-1,54,[]],[-1,54,[]],[-1,54,[]],[-1,54,[]],[8,55],[8,55],[6,56],0,0,0,0,0,0,0,0,0,0,[[8,-1,-1,-1],[[26,[-1,57]]],[24,[59,[58]]]],[[[26,[-1,-2]]],[[60,[-1,-2]]],24,25],[[[26,[-1,-2]]],[[61,[-1,-2]]],24,25],[[[26,[-1,-2]]],16,[],[]],[[[26,[-1,-2]]],[[62,[-1,-2]]],24,25],[[[26,[-1,-2]]],[[63,[-1,-2]]],24,25],[[[26,[-1,-2]]],17,[],[]],[[[26,[-1,-2]]],[[35,[[4,[-1]],10]]],24,25],[[[26,[-1,-2]]],[[35,[[4,[-1]],10]]],24,25],[64,[[28,[14]]]],[[[26,[-1,-2]]],14,[],[]],[-1,-2,[],[]],[[[65,[-2,-3]],17],[[26,[-1,-3]]],24,[[67,[],[[66,[-1]]]]],25],[-1,-2,[],[]],[[[26,[-1,-2]],31],[[27,[[26,[-3,-2]]]]],24,[],24],[[[26,[-1,-2]],[26,[-3,-2]]],[[27,[21]]],24,[],24],[[[26,[-1,-2]]],[],[],[]],[[[26,[-1,-2]]],-3,[],[],[]],[[[26,[-1,-2]]],-2,24,25],[[[28,[17]]],[[27,[[26,[-1,-2]]]]],24,25],[[[26,[-1,-2]],33],[[35,[21,34]]],[],[]],[[[26,[-1,-2]],33],[[35,[21,34]]],[],[]],[-1,-1,[]],[[8,[65,[-2,-3]]],[[26,[-1,-3]]],24,[[67,[],[[66,[-1]]]]],25],[[8,16],[[26,[-1,-2]]],[],[]],[[8,16],[[42,[-1]]],[]],[[8,-2],[[26,[-1,57]]],24,[[69,[],[[68,[-1]]]]]],[[8,[70,[-1,-2]]],[[26,[-1,-2]]],24,25],[[8,[70,[[45,[-1]],-2]]],[[26,[9,-2]]],[],25],[[8,16],[[26,[-1,-2]]],[],[]],[[8,16],[[42,[-1]]],[]],[[8,[4,[-1]]],[[26,[-1,57]]],24],[-1,-2,[],[]],[[8,[46,[-1]]],[[26,[-1,57]]],24],[[8,[4,[[46,[-1]]]]],[[35,[[26,[-1,71]],7]]],24],[[8,[4,[[46,[[46,[-1]]]]]]],[[35,[[26,[-1,72]],7]]],24],[[[26,[-1,-2]],-3],[[42,[-1]]],24,25,[[74,[],[[73,[-2]]]]]],[8,[[27,[[28,[75]]]]]],[[[26,[-1,-2]],-3],[[42,[-1]]],24,25,[[74,[],[[73,[-2]]]]]],[[[26,[-1,-2]],-3],[[42,[-1]]],24,25,[[74,[],[[73,[-2]]]]]],[-1,-2,[],[]],[[[26,[-1,-2]],8],[[45,[[26,[-1,-2]]]]],[],[]],[[[26,[-1,-2]],8],9,[],[]],[-1,31,[]],[[[28,[17]]],31],[[[26,[-1,76]]],-1,[77,24]],[[8,-2,31],[[26,[-3,-1]]],25,[[78,[],[[73,[-1]]]]],24],[[[26,[-1,-2]]],[[79,[-1,-2]]],24,25],[[[26,[-1,-2]]],[[80,[-1,-2]]],24,25],[[[26,[-1,-2]],-3],[[27,[[26,[-1]]]]],24,[],78],[[[26,[-1,-2]],-3,81],[[27,[[26,[-1]]]]],24,[],78],[[[26,[-1,-2]],-3],[[27,[21]]],24,[],78],[[[26,[-1,-2]]],[[26,[-1,30]]],24,25],[[[26,[-1,-2]],8],9,[],[]],[[[26,[-1,-2]]],[[45,[[26,[-1,-2]]]]],[],[]],[[[26,[-1,-2]]],[[70,[-1,-2]]],24,25],[-1,51,[]],[-1,[[42,[-2]]],[],[]],[-1,-2,[],[]],[[[26,[-1,-2]]],[[35,[[46,[-1]],10]]],24,25],[[[26,[-1,-2]]],[[42,[[82,[-1,-3,-4,-5,-6]]]]],[83,24],25,84,84,84,84],[[[26,[-1,-2]]],[[42,[[85,[-1,-3,-4,-5,-6]]]]],[83,24],25,84,84,84,84],[-1,[[35,[-2,52]]],[[53,[17]]],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2,52]]],[[53,[17]]],[]],[-1,-2,[[53,[17]]],[]],[-1,[[35,[-2]]],[],[]],[[[26,[-1,-2]]],[[35,[[79,[-1,-2]],11]]],24,25],[[[26,[-1,-2]]],[[35,[[80,[-1,-2]],11]]],24,25],[[[28,[17]]],31],[-1,54,[]],[8,55],[[[26,[-1,-2]],-3],-1,24,25,[[74,[],[[73,[-2]]]]]],[[[26,[-1,-2]],-3],-1,24,25,[[74,[],[[73,[-2]]]]]],[[[26,[-1,-2]],-3],[],24,25,[[74,[],[[73,[-2]]]]]],[[8,-2,31],[[26,[-3,-1]]],25,[[78,[],[[73,[-1]]]]],24],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[[79,[-1,-2]]],[[60,[-1,-2]]],24,25],[[[80,[-1,-2]]],[[61,[-1,-2]]],24,25],[[[79,[-1,57]]],[[87,[-1,86,86]]],[83,24]],[[[79,[-1,71]]],[[87,[-1,86,86]]],[83,24]],[[[80,[-1,57]]],[[88,[-1,86,86]]],[83,24]],[[[80,[-1,71]]],[[88,[-1,86,86]]],[83,24]],[[[79,[-1,-2]]],[[35,[[4,[-1]],10]]],24,25],[[[80,[-1,-2]]],[[35,[[4,[-1]],10]]],24,25],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[79,[-1,-2]]],[[79,[-1,-2]]],24,25],[[-1,-2],21,[],[]],[[[79,[-1,-2]]],-3,24,25,[]],[[[80,[-1,-2]]],-3,24,25,[]],[[[79,[-1,-2]]],21,24,25],[[[80,[-1,-2]]],21,24,25],[17,[[27,[[79,[-1,-2]]]]],24,25],[17,[[27,[[80,[-1,-2]]]]],24,25],[[[79,[-1,-2]],33],37,24,25],[[[80,[-1,-2]],33],37,24,25],[-1,-1,[]],[-1,-1,[]],[[[28,[17]]],[[35,[-1,43]]],[]],[[[28,[17]]],[[35,[-1,43]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[79,[-1,-2]],-3],[[42,[-1]]],24,25,[[74,[],[[73,[-2]]]]]],[[[80,[-1,-2]],-3],[[42,[-1]]],24,25,[[74,[],[[73,[-2]]]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,31,[]],[-1,31,[]],[[[80,[-1,57]],-2],[[27,[[80,[-1,57]]]]],24,78],[-1,-2,[],[]],[-1,[[42,[-2]]],[],[]],[-1,[[42,[-2]]],[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[79,[-1,-2]]],[[42,[[82,[-1,-3,-4,-5,-6]]]]],[83,24],25,84,84,84,84],[[[80,[-1,-2]]],[[42,[[85,[-1,-3,-4,-5,-6]]]]],[83,24],25,84,84,84,84],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,54,[]],[-1,54,[]],0,0,0,0,0,0,0,0,[[[89,[],[[68,[-1]],[73,[-2]]]],8],[[26,[-1,-2]]],24,25],[[[90,[],[[68,[-1]],[73,[-2]]]],8],[[26,[-1,-2]]],24,25],0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[91,[-1]]],[[91,[-1]]],[92,93]],[[[94,[-1]]],[[94,[-1]]],[92,93]],[[-1,-2],21,[],[]],[[-1,-2],21,[],[]],[[[91,[-1]],[91,[-1]]],22,[95,93]],[[[94,[-1]],[94,[-1]]],22,[95,93]],[[[91,[-1]],[91,[-1]]],31,[96,93]],[[[94,[-1]],[94,[-1]]],31,[96,93]],[[[91,[-1]],33],37,93],[[[94,[-1]],33],37,93],[97,[[91,[-1]]],93],[-1,-1,[]],[-1,-1,[]],[97,[[94,[-1]]],93],[-1,-2,[],[]],[-1,-2,[],[]],[8,6],[8,6],[[[91,[-1]],-2],21,[98,93],44],[[[94,[-1]],-2],21,[98,93],44],[-1,-2,[],[]],[-1,-2,[],[]],[-1,31,[]],[-1,31,[]],[[[91,[-1]],[91,[-1]]],[[42,[22]]],[99,93]],[[[94,[-1]],[94,[-1]]],[[42,[22]]],[99,93]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[42,[-2]]],[],[]],[-1,[[42,[-2]]],[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,54,[]],[-1,54,[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[100,100],[101,101],[102,102],[103,103],[104,104],[105,105],[106,106],[107,107],[108,108],[109,109],[110,110],[111,111],[112,112],[[-1,-2],21,[],[]],[[-1,-2],21,[],[]],[[-1,-2],21,[],[]],[[-1,-2],21,[],[]],[[-1,-2],21,[],[]],[[-1,-2],21,[],[]],[[-1,-2],21,[],[]],[[-1,-2],21,[],[]],[[-1,-2],21,[],[]],[[-1,-2],21,[],[]],[[-1,-2],21,[],[]],[[-1,-2],21,[],[]],[[-1,-2],21,[],[]],[[100,100],22],[[101,101],22],[[102,102],22],[[103,103],22],[[104,104],22],[[105,105],22],[[106,106],22],[[107,107],22],[[108,108],22],[[109,109],22],[[110,110],22],[[111,111],22],[[112,112],22],[[100,100],31],[[101,101],31],[[102,102],31],[[103,103],31],[[104,104],31],[[105,105],31],[[106,106],31],[[107,107],31],[[108,108],31],[[109,109],31],[[110,110],31],[[111,111],31],[[112,112],31],[[100,33],37],[[101,33],37],[[102,33],37],[[103,33],37],[[104,33],37],[[105,33],37],[[106,33],37],[[107,33],37],[[108,33],37],[[109,33],37],[[110,33],37],[[111,33],37],[[112,33],37],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[100,-1],21,44],[[101,-1],21,44],[[102,-1],21,44],[[103,-1],21,44],[[104,-1],21,44],[[105,-1],21,44],[[106,-1],21,44],[[107,-1],21,44],[[108,-1],21,44],[[109,-1],21,44],[[110,-1],21,44],[[111,-1],21,44],[[112,-1],21,44],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,31,[]],[-1,31,[]],[-1,31,[]],[-1,31,[]],[-1,31,[]],[-1,31,[]],[-1,31,[]],[-1,31,[]],[-1,31,[]],[-1,31,[]],[-1,31,[]],[-1,31,[]],[-1,31,[]],[[100,100],[[42,[22]]]],[[101,101],[[42,[22]]]],[[102,102],[[42,[22]]]],[[103,103],[[42,[22]]]],[[104,104],[[42,[22]]]],[[105,105],[[42,[22]]]],[[106,106],[[42,[22]]]],[[107,107],[[42,[22]]]],[[108,108],[[42,[22]]]],[[109,109],[[42,[22]]]],[[110,110],[[42,[22]]]],[[111,111],[[42,[22]]]],[[112,112],[[42,[22]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[42,[-2]]],[],[]],[-1,[[42,[-2]]],[],[]],[-1,[[42,[-2]]],[],[]],[-1,[[42,[-2]]],[],[]],[-1,[[42,[-2]]],[],[]],[-1,[[42,[-2]]],[],[]],[-1,[[42,[-2]]],[],[]],[-1,[[42,[-2]]],[],[]],[-1,[[42,[-2]]],[],[]],[-1,[[42,[-2]]],[],[]],[-1,[[42,[-2]]],[],[]],[-1,[[42,[-2]]],[],[]],[-1,[[42,[-2]]],[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,54,[]],[-1,54,[]],[-1,54,[]],[-1,54,[]],[-1,54,[]],[-1,54,[]],[-1,54,[]],[-1,54,[]],[-1,54,[]],[-1,54,[]],[-1,54,[]],[-1,54,[]],[-1,54,[]],0,0,0,0,0,0,[[113,8,49,13,114,81,115,114,15,49,49,116,116],117],[[113,8,117],117],[[113,8,117,116,116],49],[[113,8,117],49],[[113,8,117],21],[[113,8,117],49],[[113,8,117,49],116],[[113,8,117],116],[[113,8,117],32],[[113,8,117],15],[[113,8,117,32],118],[[113,8,117],116],[[113,8,117],32],[[113,8,117,116],21],[[113,8,117],116],[[113,8,117],116],[[113,8,117],116],[[113,8,117,116,116],21],[[113,8,117,32],119],[[113,8,117],116],[[113,8,117,116],13],[[113,8,117],49],[[113,8,117],49],[[113,8,117],13],[[113,8,117,32],21],[[113,8,117,116],49],[[113,8,117,32],21],[[113,8,117,116],49],[[113,8,117,116],49],[[113,8,117,116],49],[[113,8,117],120],[[113,8,117],120],[[113,8,117],120],[[113,8,117],120],[[113,8,117],120],[[113,8,117,49],120],[[113,8,117],120],[[113,8,117],120],[[113,8,49,13,114,81,115,114,15],117],[[113,8,13,114,81,115,15],117],[[113,8,117,49],49],[[113,8,117],49],[[113,8,117],120],[[113,8,117,32],49],[[113,8,117,32,32],49],[[113,8,117,116,116,32],49],0,0,0,0,0,0,0,[[113,8,13,49,13],16],[[113,8,13,49,13],16],[[113,8,58,58,58,49],16],[[113,8,16,16,16,15],16],[[113,8,13,49,13],16],[[113,8,13,49,13],16],[[113,8,13,13,49,121],16],[[113,8,13,49,122],16],[[113,8,16,32,49,49],49],[[113,8,16,32,49,49,49],49],[[113,8,16,123,116,49,15],49],[[113,8,16,49],49],[[113,8,16,120],49],[[113,8,124],49],[[113,8,16,116,49],16],[[113,8,16,125],49],[[113,8,16,32],49],[[113,8,13,120],16],[[113,8,13,15,115],120],[[113,8,49,49],49],[[113,8,55,55],120],[[113,8,15,15],120],[[113,8,15,15,115],120],[[113,8,49,49,126],49],[[113,8,13,13],49],[[113,8,16,15,123,49],49],[[113,8,16,123,15],49],[[113,8,13,13],49],[[113,8,13,15,49],16],[[113,8,16,115],49],[[8,16],49],[[113,8,16],49],[[113,8,13,49,49],16],[[8,16],49],[[113,8,16,15,49,49,49,16],16],[[113,8,49,49,116,116,116,116],120],[[113,8,13,16,13,127],16],[[113,8,13,16,16,13],16],[[113,8,16,127],49],[[113,8,116,116,49],49],[[113,8,32,32,1],49],[[113,8,128,128,1],49],[[113,8,13,16,49,13],16],[[113,8,16,49],16],[[113,8,13,13],16],[[113,8,16,127,49],49],[[113,8,16,49],13],[[113,8,16,16],49],[[113,8,16],16],[[113,8,13,13],49],[[113,8,13,13],49],[[113,8,13,16],49],[[113,8,16,16,49],16],[[113,8,16,16,49],16],[[113,8,13],116],[[113,8,49,116,129],21],[[113,8,13,49,49,13],16],[[113,8,13,49,49,13],16],[[113,8,130,131],132],[[113,8,132,130,131],21],[[113,8,13],21],[[113,8,16,15],49],[[113,8,16,15],49],[[113,8,16,15],49],[[113,8,16,15],49],[[113,8,16,15],15],[[113,8,16],15],[[113,8,49],15],[[113,8,16],15],[[113,8,15],15],[[113,8,15,32],15],[[113,8,49],15],[[113,8,13,49,49,49],16],[[113,8,16,16,49],49],[[113,8,16,49],16],[[113,8,32,116,13,15,81,115,13],16],[[113,8,32],49],[[113,8,16],49],[[113,8,49,116,15,49],16],[[113,8,16],16],[[113,8,16],16],[[113,8,49,49],133],[[113,8,15,15],133],[[113,8,13,32],49],[[113,8,16],16],[[113,8,13,16],21],[[113,8,13,16],49],[[113,8,13,81],16],[[113,8,16,123],49],[[113,8,16,15,49,49,49,16],16],[[113,8,13,15,49],16],[[113,8,16,15,16],16],[[113,8,16,15,116,116],16],[[113,8,49,49,49],16],[[113,8,49,49,15,32],16],[[113,8,134,15,116,32],16],[[113,8,16],16],[[113,8,16,15,116],16],[[113,8,16,15],16],[[113,8,32,116,15,116,32],16],[[113,8,16],16],[[113,8,16,15,120,15,49,116,13,16],49],[[113,8,15,49],135],[[113,8],49],[[113,8,13,15,49],16],[[113,8],136],[[113,8],136],[[113,8],16],[[113,8,16,58],58],[[113,8,13,116],123],[[113,8,13],49],[[113,8,137],21],[[113,8,16,16],16],[[113,8,49,116],16],[[113,8,16,138],49],[[113,8,16,116,49],49],[[113,8,32,15],21],[[113,8,32,15],21],[[113,8,16,49],16],[[113,8,16],16],[[113,8,16,49],16],[[113,8,13,16],16],[[113,8,13,16,49,13],16],[[113,8,139],21],[[113,8,139,13,49],21],[[113,8,16,16],16],[[113,8,16,16,13],16],[[113,8,13,49,13],16],[[113,8,13,49,49,13],16],[[113,8,13,49,13],16],[[113,8,13],15],[[113,8,13,13],49],[[113,8,49,49],49],[[113,8,116,49],116],[[113,8,140,116,49,13],16],[[113,8,55,49,116,49,116,123,49,49,16],16],[[113,8,13,81],16],[[113,8,16],16],[[113,8,55,15,49,116,116,123,49,16],16],[[113,8,13,81,15,49],16],[[113,8,13,138,81],16],[[113,8,13],16],[[113,8,16,49],49],[[113,8,13],32],[[113,8,16,81],49],[[113,8,16,13],49],[[113,8,116,49],116],[[113,8,13,13,49,121],49],[[113,8,13,49,49,13],16],[[113,8,15,15],15],[[113,8,13,49,13],16],[[113,8,13,16,16],16],[[113,8,13,16,16,127],16],[[113,8,16],49],[[113,8,16],116],[[113,8,13,81],16],[[113,8,15,49,126],49],[[113,8,15,49,135],49],[[113,8,15],49],[[113,8,13,120],21],[[113,8,124],49],[[113,8,13,16,49],16],[[113,8,13,16],16],[[113,8,13,138,49,81],16],[[113,8,13],49],[[113,8,116,13,116,15],15],[[113,8,13],16],[[113,8,13,49,13],16],[[113,8,123,15,16],16],[[113,8,16,123],21],[[113,8,16],16],[[113,8,49,13],126],[[113,8,13,16,141,16],16],[[113,8,16,123],49],[[113,8,16,121],49],[[113,8,13,16],49],[[113,8,16],21],[[113,8,13,15,49,16],49],[[113,8,16],49],[[113,8,16,49],21],[[113,8,13,13],49],[[113,8,13,13],49],[[113,8,16],116],[[113,8,13,49,122],49],[[113,8,16,122],49],[[113,8,13],16],[[113,8,13,49,49,13,49],16],[[113,8,13,49,49,13],16],[[113,8,13,49,49],16],[[113,8,13,16,49,13,127],16],[[113,8,130,142],132],[[113,8,143,130,142],21],[[113,8,13,134,32,32],49],[[113,8,13],16],[[113,8,13,81],16],[[113,8,13,49,49,49,49,13],16],[[113,8,13,138],16],0,[[113,8,49],16],[[113,8,49,49],49],[[113,8,13,49],21],[[113,8,49],49],[[113,8,13,15,55],16],[[113,8,16,16,16],16],[[113,8,13],49],[[113,8,13],32],[[113,8,49,116,15,49],16],0,0,0,0,0,0,0,0,[[113,8,123],21],[[113,8,1],123],[[113,8,1,1],123],[[113,8,123,1],123],[[113,8,144,123,123],144],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[113,8],123],[[113,8,49],21],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-1,[]],[-1,-1,[]],[-1,-2,[],[]],[-1,-2,[],[]],[[113,8,145],55],[-1,-2,[],[]],[-1,-2,[],[]],[-1,31,[]],[-1,31,[]],[-1,[[42,[-2]]],[],[]],[-1,[[42,[-2]]],[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,54,[]],[-1,54,[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,[13,13],[15,15],[146,146],[137,137],[147,147],[138,138],[125,125],[148,148],[149,149],[117,117],[140,140],[124,124],[150,150],[139,139],[151,151],[152,152],[153,153],0,[[-1,-2],21,[],[]],[[-1,-2],21,[],[]],[[-1,-2],21,[],[]],[[-1,-2],21,[],[]],[[-1,-2],21,[],[]],[[-1,-2],21,[],[]],[[-1,-2],21,[],[]],[[-1,-2],21,[],[]],[[-1,-2],21,[],[]],[[-1,-2],21,[],[]],[[-1,-2],21,[],[]],[[-1,-2],21,[],[]],[[-1,-2],21,[],[]],[[-1,-2],21,[],[]],[[-1,-2],21,[],[]],[[-1,-2],21,[],[]],[[-1,-2],21,[],[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[117,33],37],0,[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,31,[]],[-1,31,[]],[-1,31,[]],[-1,31,[]],[-1,31,[]],[-1,31,[]],[-1,31,[]],[-1,31,[]],[-1,31,[]],[-1,31,[]],[-1,31,[]],[-1,31,[]],[-1,31,[]],[-1,31,[]],[-1,31,[]],[-1,31,[]],[-1,31,[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[42,[-2]]],[],[]],[-1,[[42,[-2]]],[],[]],[-1,[[42,[-2]]],[],[]],[-1,[[42,[-2]]],[],[]],[-1,[[42,[-2]]],[],[]],[-1,[[42,[-2]]],[],[]],[-1,[[42,[-2]]],[],[]],[-1,[[42,[-2]]],[],[]],[-1,[[42,[-2]]],[],[]],[-1,[[42,[-2]]],[],[]],[-1,[[42,[-2]]],[],[]],[-1,[[42,[-2]]],[],[]],[-1,[[42,[-2]]],[],[]],[-1,[[42,[-2]]],[],[]],[-1,[[42,[-2]]],[],[]],[-1,[[42,[-2]]],[],[]],[-1,[[42,[-2]]],[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],0,0,[-1,54,[]],[-1,54,[]],[-1,54,[]],[-1,54,[]],[-1,54,[]],[-1,54,[]],[-1,54,[]],[-1,54,[]],[-1,54,[]],[-1,54,[]],[-1,54,[]],[-1,54,[]],[-1,54,[]],[-1,54,[]],[-1,54,[]],[-1,54,[]],[-1,54,[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[154,154],[155,155],[156,156],[81,81],[126,126],[122,122],[141,141],[130,130],[157,157],[121,121],[115,115],[127,127],[131,131],[142,142],[129,129],[158,158],[159,159],[160,160],[[-1,-2],21,[],[]],[[-1,-2],21,[],[]],[[-1,-2],21,[],[]],[[-1,-2],21,[],[]],[[-1,-2],21,[],[]],[[-1,-2],21,[],[]],[[-1,-2],21,[],[]],[[-1,-2],21,[],[]],[[-1,-2],21,[],[]],[[-1,-2],21,[],[]],[[-1,-2],21,[],[]],[[-1,-2],21,[],[]],[[-1,-2],21,[],[]],[[-1,-2],21,[],[]],[[-1,-2],21,[],[]],[[-1,-2],21,[],[]],[[-1,-2],21,[],[]],[[-1,-2],21,[],[]],[[157,157],22],0,0,[[81,81],31],[[126,126],31],[[122,122],31],[[141,141],31],[[130,130],31],[[157,157],31],[[121,121],31],[[115,115],31],[[127,127],31],[[160,160],31],[[154,33],37],[[155,33],37],[[156,33],37],[[81,33],37],[[126,33],37],[[122,33],37],[[141,33],37],[[130,33],37],[[157,33],37],[[121,33],37],[[115,33],37],[[131,33],37],[[142,33],37],[[129,33],37],[[158,33],37],[[159,33],37],[[160,33],37],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[81,-1],21,44],[[126,-1],21,44],[[122,-1],21,44],[[141,-1],21,44],[[130,-1],21,44],[[157,-1],21,44],[[121,-1],21,44],[[115,-1],21,44],[[127,-1],21,44],[[160,-1],21,44],0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,31,[]],[-1,31,[]],[-1,31,[]],[-1,31,[]],[-1,31,[]],[-1,31,[]],[-1,31,[]],[-1,31,[]],[-1,31,[]],[-1,31,[]],[-1,31,[]],[-1,31,[]],[-1,31,[]],[-1,31,[]],[-1,31,[]],[-1,31,[]],[-1,31,[]],[-1,31,[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[157,157],[[42,[22]]]],0,0,0,0,0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[42,[-2]]],[],[]],[-1,[[42,[-2]]],[],[]],[-1,[[42,[-2]]],[],[]],[-1,[[42,[-2]]],[],[]],[-1,[[42,[-2]]],[],[]],[-1,[[42,[-2]]],[],[]],[-1,[[42,[-2]]],[],[]],[-1,[[42,[-2]]],[],[]],[-1,[[42,[-2]]],[],[]],[-1,[[42,[-2]]],[],[]],[-1,[[42,[-2]]],[],[]],[-1,[[42,[-2]]],[],[]],[-1,[[42,[-2]]],[],[]],[-1,[[42,[-2]]],[],[]],[-1,[[42,[-2]]],[],[]],[-1,[[42,[-2]]],[],[]],[-1,[[42,[-2]]],[],[]],[-1,[[42,[-2]]],[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,54,[]],[-1,54,[]],[-1,54,[]],[-1,54,[]],[-1,54,[]],[-1,54,[]],[-1,54,[]],[-1,54,[]],[-1,54,[]],[-1,54,[]],[-1,54,[]],[-1,54,[]],[-1,54,[]],[-1,54,[]],[-1,54,[]],[-1,54,[]],[-1,54,[]],[-1,54,[]],0,0,0,0,0,[[161,8,32,116,116,123],21],[[161,8,32,116,116,123],21],[[161,8,149,115,13,16,15],49],[[161,8,32,116,116,123],21],[[161,8,32,116,116,123],21],[[161,8,32,116,116,123],21],[[161,8,32,116,116,123],21],[[161,8,162,123,32,49,49,49,49,32,32,49],16],[[161,8,162,123,32,49,49,49,49,32,32,49,32],16],[[161,8,149,123,32,49,49,49,49,32,32,49,32,32],49],[[161,8,32,116,116,123],21],[[161,8,32,116,116,123],21],[[161,8,149,16,16,13],49],[[161,8,32,49,49,16],49],[[161,8,32,116,116,123],21],[[161,8,32,116,116,123],21],[[161,8,32,116,116,123],21],[[161,8,32,116,116,123],21],[[161,8,32,116,116,123],21],[[161,8,149,15,162,15,123],49],[[161,8,149,49,162,49,123],49],[[161,8,149,162,49,162],49],[[161,8,123,1],49],[[161,8,149,115,13,15],49],[[161,8,49,16,49],49],[[161,8],21],[[161,8,32,116,116,123],21],[[161,8,32,116,116,123],21],[[161,8,32,116,116,123],21],[[161,8,32,116,116,123],21],[[161,8,32,116,116,123],21],[[161,8,32,116,116,123],21],[[161,8,32,116,116,123],21],[[161,8,32,116,116,123],21],[[161,8,32,116,116,123],21],[[161,8,32,116,116,123],21],[[161,8,32,116,116,123],21],[[161,8,32,116,116,123],21],[[161,8,32,116,116,123],21],[[161,8],49],[[161,8,32,116,116,123],21],[[161,8,49,16,49,49],49],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-1,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,31,[]],[-1,[[42,[-2]]],[],[]],[-1,-2,[],[]],[-1,[[35,[-2]]],[],[]],[-1,[[35,[-2]]],[],[]],[-1,54,[]]],"c":[],"p":[[1,"usize"],[1,"array"],[5,"Dim",2272],[1,"slice"],[5,"IxDynImpl",2273],[5,"PyArrayDescr",0],[5,"FromVecError",0],[5,"Python",2274],[8,"PyObject",2275],[5,"NotContiguousError",0],[6,"BorrowError",0],[10,"PyUntypedArrayMethods",0],[5,"PyArrayObject",1204],[5,"PyUntypedArray",0],[5,"PyArray_Descr",1204],[5,"PyObject",2276],[5,"PyAny",2277],[1,"u8"],[5,"PyFixedString",0],[5,"PyFixedUnicode",0],[1,"tuple"],[6,"Ordering",2278],[5,"PyArrayLike",0],[10,"Element",0],[10,"Dimension",2279],[5,"PyArray",335],[8,"PyResult",2280],[5,"Bound",2275],[1,"str"],[8,"IxDyn",0],[1,"bool"],[8,"c_char",2281],[5,"Formatter",2282],[5,"Error",2282],[6,"Result",2283],[5,"TypeMustMatch",0],[8,"Result",2282],[5,"AllowTypeChange",0],[10,"Debug",2282],[8,"Py_UCS1",2284],[8,"Py_UCS4",2284],[6,"Option",2285],[5,"PyErr",2280],[10,"Hasher",2286],[5,"Py",2275],[5,"Vec",2287],[10,"ToPyObject",2288],[10,"Sized",2289],[8,"c_int",2281],[1,"isize"],[5,"String",2290],[5,"PyDowncastError",2280],[10,"Into",2291],[5,"TypeId",2292],[5,"PyTypeObject",2293],[5,"PyType",2294],[8,"Ix1",0],[1,"f64"],[10,"AsPrimitive",2295],[8,"ArrayView",2296],[8,"ArrayViewMut",2296],[8,"RawArrayView",2296],[8,"RawArrayViewMut",2296],[10,"PyArrayMethods",335],[5,"ArrayBase",2296],[17,"Elem"],[10,"Data",2297],[17,"Item"],[10,"IntoIterator",2298],[8,"Array",2296],[8,"Ix2",0],[8,"Ix3",0],[17,"Dim"],[10,"NpyIndex",487],[5,"PyModule",2299],[8,"Ix0",2300],[10,"Copy",2289],[10,"IntoDimension",2301],[5,"PyReadonlyArray",421],[5,"PyReadwriteArray",421],[6,"NPY_ORDER",1736],[8,"MatrixView",2302],[10,"Scalar",2303],[10,"Dim",2304],[8,"MatrixViewMut",2302],[5,"Dyn",2304],[8,"DMatrixView",2305],[8,"DMatrixViewMut",2305],[10,"IntoPyArray",487],[10,"ToPyArray",487],[5,"Datetime",497],[10,"Clone",2306],[10,"Unit",497],[5,"Timedelta",497],[10,"Ord",2278],[10,"PartialEq",2278],[1,"i64"],[10,"Hash",2286],[10,"PartialOrd",2278],[5,"Years",545],[5,"Months",545],[5,"Weeks",545],[5,"Days",545],[5,"Hours",545],[5,"Minutes",545],[5,"Seconds",545],[5,"Milliseconds",545],[5,"Microseconds",545],[5,"Nanoseconds",545],[5,"Picoseconds",545],[5,"Femtoseconds",545],[5,"Attoseconds",545],[5,"PyArrayAPI",810],[8,"npy_uint32",1736],[6,"NPY_CASTING",1736],[8,"npy_intp",1736],[5,"NpyIter",1204],[8,"NpyIter_GetMultiIndexFunc",1204],[8,"NpyIter_IterNextFunc",1204],[8,"npy_bool",1736],[6,"NPY_SELECTKIND",1736],[6,"NPY_SORTKIND",1736],[8,"c_void",2281],[5,"PyArrayMultiIterObject",1204],[5,"PyArray_Chunk",1204],[6,"NPY_SCALARKIND",1736],[6,"NPY_CLIPMODE",1736],[8,"npy_ucs4",1736],[5,"npy_stride_sort_item",1736],[6,"NPY_DATETIMEUNIT",1736],[5,"npy_datetimestruct",1736],[8,"npy_datetime",1736],[8,"c_uchar",2281],[6,"FILE",2307],[8,"PyArray_VectorUnaryFunc",1204],[8,"c_uint",2281],[5,"PyArray_ArrFuncs",1204],[5,"PyArray_Dims",1204],[5,"PyArrayMapIterObject",1204],[5,"PyArrayIterObject",1204],[6,"NPY_SEARCHSIDE",1736],[5,"npy_timedeltastruct",1736],[8,"npy_timedelta",1736],[8,"PyDataMem_EventHookFunc",1204],[6,"NpyTypes",810],[5,"PyArray_ArrayDescr",1204],[5,"PyArrayFlagsObject",1204],[5,"PyArrayInterface",1204],[5,"PyUFuncObject",1204],[5,"PyArrayNeighborhoodIterObject",1204],[5,"NpyAuxData",1204],[5,"PyArray_DatetimeMetaData",1204],[5,"PyArray_DatetimeDTypeMetaData",1204],[5,"npy_cdouble",1736],[5,"npy_cfloat",1736],[5,"npy_clongdouble",1736],[6,"NPY_TYPES",1736],[6,"NPY_TYPECHAR",1736],[6,"NPY_TYPEKINDCHAR",1736],[6,"NPY_BYTEORDER_CHAR",1736],[5,"PyUFuncAPI",2217],[8,"PyUFuncGenericFunction",1204],[8,"Complex32",0],[8,"Complex64",0],[8,"PyArray_GetItemFunc",1204],[8,"PyArray_SetItemFunc",1204],[8,"PyArray_CopySwapNFunc",1204],[8,"PyArray_CopySwapFunc",1204],[8,"PyArray_NonzeroFunc",1204],[8,"PyArray_CompareFunc",1204],[8,"PyArray_ArgFunc",1204],[8,"PyArray_DotFunc",1204],[8,"PyArray_ScanFunc",1204],[8,"PyArray_FromStrFunc",1204],[8,"PyArray_FillFunc",1204],[8,"PyArray_SortFunc",1204],[8,"PyArray_ArgSortFunc",1204],[8,"PyArray_PartitionFunc",1204],[8,"PyArray_ArgPartitionFunc",1204],[8,"PyArray_FillWithScalarFunc",1204],[8,"PyArray_ScalarKindFunc",1204],[8,"PyArray_FastClipFunc",1204],[8,"PyArray_FastPutmaskFunc",1204],[8,"PyArray_FastTakeFunc",1204],[8,"PyUFunc_MaskedStridedInnerLoopFunc",1204],[8,"PyUFunc_TypeResolutionFunc",1204],[8,"PyUFunc_LegacyInnerLoopSelectionFunc",1204],[8,"PyUFunc_MaskedInnerLoopSelectionFunc",1204],[8,"npy_iter_get_dataptr_t",1204],[8,"NpyAuxData_FreeFunc",1204],[8,"NpyAuxData_CloneFunc",1204],[8,"npy_complex128",1736],[8,"npy_complex64",1736],[8,"npy_complex256",1736]],"b":[[133,"impl-Debug-for-PyArrayDescr"],[134,"impl-Display-for-PyArrayDescr"],[135,"impl-Display-for-PyUntypedArray"],[136,"impl-Debug-for-PyUntypedArray"],[140,"impl-Display-for-FromVecError"],[141,"impl-Debug-for-FromVecError"],[142,"impl-Debug-for-NotContiguousError"],[143,"impl-Display-for-NotContiguousError"],[144,"impl-Debug-for-BorrowError"],[145,"impl-Display-for-BorrowError"],[146,"impl-Debug-for-PyFixedString%3CN%3E"],[147,"impl-Display-for-PyFixedString%3CN%3E"],[148,"impl-Display-for-PyFixedUnicode%3CN%3E"],[149,"impl-Debug-for-PyFixedUnicode%3CN%3E"],[204,"impl-IntoPy%3CPy%3CPyAny%3E%3E-for-PyUntypedArray"],[205,"impl-IntoPy%3CPy%3CPyUntypedArray%3E%3E-for-%26PyUntypedArray"],[365,"impl-Display-for-PyArray%3CT,+D%3E"],[366,"impl-Debug-for-PyArray%3CT,+D%3E"],[386,"impl-IntoPy%3CPy%3CPyArray%3CT,+D%3E%3E%3E-for-%26PyArray%3CT,+D%3E"],[387,"impl-IntoPy%3CPy%3CPyAny%3E%3E-for-PyArray%3CT,+D%3E"],[441,"impl-PyReadonlyArray%3C\'py,+N,+Dim%3C%5Busize;+1%5D%3E%3E"],[442,"impl-PyReadonlyArray%3C\'py,+N,+Dim%3C%5Busize;+2%5D%3E%3E"],[443,"impl-PyReadwriteArray%3C\'py,+N,+Dim%3C%5Busize;+1%5D%3E%3E"],[444,"impl-PyReadwriteArray%3C\'py,+N,+Dim%3C%5Busize;+2%5D%3E%3E"]],"a":{"nalgebra":[405,406,441,442,443,444,479,480],"pyarray":[344],"pyuntypedarray":[69]}}]\ +["numpy",{"doc":"This crate provides Rust interfaces for NumPy C APIs, …","t":"FPGIIKFTEHIHIHIHIHIHIHIFPEEEEEEEEEEEFKEFIIIIIIIIEFFEEEEEEEEEEEEEEEEEEFKEEFNNNNNNCQMNMNNNNNMNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCCNNNHHMNHHQNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNENNMNNNNMNNNNNNNNNNNNOOHNNNNNNNNNNMNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNEMNENNNNNNNNCNNNNNNNNNQEOOMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNFIIIIIIIIKNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFIIIIIIIIFIIIIIIIINNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNRRKRRKKKMMTFFTKNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCFFFFFFFFFFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCCCCCPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNGJFPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPNNNNNNNNNPPPPPPPPNNNNNPPPPPPPPPPPPPPPPPPPPPPPPPNNNNNNNNNNNNNNNNNNNNNNNNNSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPFIIFIIFFFFFFFIIIFFFIIIFFFFIIIIIIIIIIIIIIIIIFIIIIPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOONNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOIOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNOOOOOOOOPPPPPPPGGPPPPPPPGPPPPPPPGPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPTPPPPPPPPTGPPPPGPPGGPPPGPPPPPPGGGPPPPPPPPPPPPPPPPPPPOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOIIFFIFIIIIFIIIIIIIIIIIIIIIIIIFIFIIIIIIIIIIINOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOJFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["AllowTypeChange","AlreadyBorrowed","BorrowError","Complex32","Complex64","Element","FromVecError","IS_COPY","IntoPyArray","Ix1","Ix1","Ix2","Ix2","Ix3","Ix3","Ix4","Ix4","Ix5","Ix5","Ix6","Ix6","IxDyn","IxDyn","NotContiguousError","NotWriteable","NpyIndex","PY_ARRAY_API","PY_UFUNC_API","PyArray","PyArray0","PyArray1","PyArray2","PyArray3","PyArray4","PyArray5","PyArray6","PyArrayDescr","PyArrayDescrMethods","PyArrayDyn","PyArrayLike","PyArrayLike0","PyArrayLike1","PyArrayLike2","PyArrayLike3","PyArrayLike4","PyArrayLike5","PyArrayLike6","PyArrayLikeDyn","PyArrayMethods","PyFixedString","PyFixedUnicode","PyReadonlyArray","PyReadonlyArray0","PyReadonlyArray1","PyReadonlyArray2","PyReadonlyArray3","PyReadonlyArray4","PyReadonlyArray5","PyReadonlyArray6","PyReadonlyArrayDyn","PyReadwriteArray","PyReadwriteArray0","PyReadwriteArray1","PyReadwriteArray2","PyReadwriteArray3","PyReadwriteArray4","PyReadwriteArray5","PyReadwriteArray6","PyReadwriteArrayDyn","PyUntypedArray","PyUntypedArrayMethods","ToNpyDims","ToPyArray","TypeMustMatch","alignment","alignment","alignment","arguments","arguments","arguments","array","array","as_array_ptr","as_array_ptr","as_dtype_ptr","as_dtype_ptr","as_ptr","as_ptr","as_ref","as_ref","base","base","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","byteorder","byteorder","byteorder","char","char","char","clone","clone","clone_into","clone_into","cmp","cmp","convert","datetime","deref","deref","deref","dot","dtype","dtype","dtype","dtype_bound","einsum","einsum","eq","eq","extract","extract_bound","extract_bound","flags","flags","flags","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from_borrowed_ptr_or_opt","from_borrowed_ptr_or_opt","from_owned_ptr_or_opt","from_owned_ptr_or_opt","from_py_object_bound","from_subset","from_subset","from_subset","from_subset","from_subset","from_subset","from_subset","from_subset","from_subset","from_subset","get_array_module","get_dtype","get_dtype","get_dtype_bound","get_dtype_bound","get_dtype_bound","get_dtype_bound","get_dtype_bound","get_field","get_field","has_fields","has_fields","has_fields","has_object","has_object","has_object","has_subarray","has_subarray","has_subarray","hash","hash","im","im","inner","into","into","into","into","into","into","into","into","into","into","into_dtype_ptr","into_dtype_ptr","into_py","into_py","into_py","is_aligned_struct","is_aligned_struct","is_aligned_struct","is_c_contiguous","is_c_contiguous","is_c_contiguous","is_contiguous","is_contiguous","is_contiguous","is_empty","is_empty","is_empty","is_equiv_to","is_equiv_to","is_fortran_contiguous","is_fortran_contiguous","is_fortran_contiguous","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_native_byteorder","is_native_byteorder","is_native_byteorder","is_type_of","is_type_of_bound","itemsize","itemsize","itemsize","kind","kind","kind","len","len","len","nalgebra","names","names","ndarray","ndim","ndim","ndim","ndim","ndim","ndim","new","new_bound","npyffi","num","num","num","object","object_bound","of","of_bound","partial_cmp","partial_cmp","pyarray","pyo3","re","re","shape","shape","shape","shape","shape","strides","strides","strides","to_object","to_object","to_owned","to_owned","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from_exact","try_from_exact","try_from_unchecked","try_from_unchecked","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_check","type_check","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_object_raw","type_object_raw","typeobj","typeobj","PyArray","PyArray0","PyArray1","PyArray2","PyArray3","PyArray4","PyArray5","PyArray6","PyArrayDyn","PyArrayMethods","arange","as_array","as_array_mut","as_ptr","as_raw_array","as_raw_array_mut","as_ref","as_slice","as_slice_mut","as_untyped","as_untyped","borrow","borrow_from_array","borrow_mut","cast","copy_to","data","deref","dims","extract_bound","fmt","fmt","from","from_array","from_borrowed_ptr","from_borrowed_ptr_or_opt","from_iter","from_owned_array","from_owned_object_array","from_owned_ptr","from_owned_ptr_or_opt","from_slice","from_subset","from_vec","from_vec2","from_vec3","get","get_array_module","get_mut","get_owned","into","into_py","into_py","is_in_subset","is_type_of_bound","item","new","readonly","readwrite","reshape","reshape_with_order","resize","to_dyn","to_object","to_owned","to_owned_array","to_string","to_subset","to_subset_unchecked","to_vec","try_as_matrix","try_as_matrix_mut","try_from","try_from","try_from_exact","try_from_unchecked","try_into","try_readonly","try_readwrite","type_check","type_id","type_object_raw","uget","uget_mut","uget_raw","zeros","PyReadonlyArray","PyReadonlyArray0","PyReadonlyArray1","PyReadonlyArray2","PyReadonlyArray3","PyReadonlyArray4","PyReadonlyArray5","PyReadonlyArray6","PyReadonlyArrayDyn","PyReadwriteArray","PyReadwriteArray0","PyReadwriteArray1","PyReadwriteArray2","PyReadwriteArray3","PyReadwriteArray4","PyReadwriteArray5","PyReadwriteArray6","PyReadwriteArrayDyn","as_array","as_array_mut","as_matrix","as_matrix","as_matrix_mut","as_matrix_mut","as_slice","as_slice_mut","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","deref","deref","drop","drop","extract","extract","fmt","fmt","from","from","from_py_object_bound","from_py_object_bound","from_subset","from_subset","get","get_mut","into","into","is_in_subset","is_in_subset","resize","to_owned","to_subset","to_subset","to_subset_unchecked","to_subset_unchecked","try_as_matrix","try_as_matrix_mut","try_from","try_from","try_into","try_into","type_id","type_id","Dim","Dim","IntoPyArray","Item","Item","NpyIndex","ToNpyDims","ToPyArray","into_pyarray","to_pyarray","ABBREV","Datetime","Timedelta","UNIT","Unit","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","cmp","cmp","eq","eq","fmt","fmt","from","from","from","from","from_subset","from_subset","get_dtype_bound","get_dtype_bound","hash","hash","into","into","is_in_subset","is_in_subset","partial_cmp","partial_cmp","to_owned","to_owned","to_subset","to_subset","to_subset_unchecked","to_subset_unchecked","try_from","try_from","try_into","try_into","type_id","type_id","units","Attoseconds","Days","Femtoseconds","Hours","Microseconds","Milliseconds","Minutes","Months","Nanoseconds","Picoseconds","Seconds","Weeks","Years","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from_subset","from_subset","from_subset","from_subset","from_subset","from_subset","from_subset","from_subset","from_subset","from_subset","from_subset","from_subset","from_subset","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","into","into","into","into","into","into","into","into","into","into","into","into","into","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","array","flags","objects","types","ufunc","NPY_NUMUSERTYPES","NpyIter_AdvancedNew","NpyIter_Copy","NpyIter_CreateCompatibleStrides","NpyIter_Deallocate","NpyIter_DebugPrint","NpyIter_EnableExternalLoop","NpyIter_GetAxisStrideArray","NpyIter_GetBufferSize","NpyIter_GetDataPtrArray","NpyIter_GetDescrArray","NpyIter_GetGetMultiIndex","NpyIter_GetIndexPtr","NpyIter_GetInitialDataPtrArray","NpyIter_GetInnerFixedStrideArray","NpyIter_GetInnerLoopSizePtr","NpyIter_GetInnerStrideArray","NpyIter_GetIterIndex","NpyIter_GetIterIndexRange","NpyIter_GetIterNext","NpyIter_GetIterSize","NpyIter_GetIterView","NpyIter_GetNDim","NpyIter_GetNOp","NpyIter_GetOperandArray","NpyIter_GetReadFlags","NpyIter_GetShape","NpyIter_GetWriteFlags","NpyIter_GotoIndex","NpyIter_GotoIterIndex","NpyIter_GotoMultiIndex","NpyIter_HasDelayedBufAlloc","NpyIter_HasExternalLoop","NpyIter_HasIndex","NpyIter_HasMultiIndex","NpyIter_IsBuffered","NpyIter_IsFirstVisit","NpyIter_IsGrowInner","NpyIter_IterationNeedsAPI","NpyIter_MultiNew","NpyIter_New","NpyIter_RemoveAxis","NpyIter_RemoveMultiIndex","NpyIter_RequiresBuffering","NpyIter_Reset","NpyIter_ResetBasePointers","NpyIter_ResetToIterIndexRange","NpyTypes","PY_ARRAY_API","PyArrayAPI","PyArrayDescr_Type","PyArrayFlags_Type","PyArrayIter_Type","PyArrayMultiIter_Type","PyArray_All","PyArray_Any","PyArray_Arange","PyArray_ArangeObj","PyArray_ArgMax","PyArray_ArgMin","PyArray_ArgPartition","PyArray_ArgSort","PyArray_As1D","PyArray_As2D","PyArray_AsCArray","PyArray_AxisConverter","PyArray_BoolConverter","PyArray_Broadcast","PyArray_BroadcastToShape","PyArray_BufferConverter","PyArray_ByteorderConverter","PyArray_Byteswap","PyArray_CanCastArrayTo","PyArray_CanCastSafely","PyArray_CanCastScalar","PyArray_CanCastTo","PyArray_CanCastTypeTo","PyArray_CanCoerceScalar","PyArray_CastAnyTo","PyArray_CastScalarDirect","PyArray_CastScalarToCtype","PyArray_CastTo","PyArray_CastToType","PyArray_CastingConverter","PyArray_Check","PyArray_CheckAnyScalarExact","PyArray_CheckAxis","PyArray_CheckExact","PyArray_CheckFromAny","PyArray_CheckStrides","PyArray_Choose","PyArray_Clip","PyArray_ClipmodeConverter","PyArray_CompareLists","PyArray_CompareString","PyArray_CompareUCS4","PyArray_Compress","PyArray_Concatenate","PyArray_Conjugate","PyArray_ConvertClipmodeSequence","PyArray_ConvertToCommonType","PyArray_Converter","PyArray_CopyAndTranspose","PyArray_CopyAnyInto","PyArray_CopyInto","PyArray_CopyObject","PyArray_Correlate","PyArray_Correlate2","PyArray_CountNonzero","PyArray_CreateSortedStridePerm","PyArray_CumProd","PyArray_CumSum","PyArray_DatetimeStructToDatetime","PyArray_DatetimeToDatetimeStruct","PyArray_DebugPrint","PyArray_DescrAlignConverter","PyArray_DescrAlignConverter2","PyArray_DescrConverter","PyArray_DescrConverter2","PyArray_DescrFromObject","PyArray_DescrFromScalar","PyArray_DescrFromType","PyArray_DescrFromTypeObject","PyArray_DescrNew","PyArray_DescrNewByteorder","PyArray_DescrNewFromType","PyArray_Diagonal","PyArray_Dump","PyArray_Dumps","PyArray_EinsteinSum","PyArray_ElementFromName","PyArray_ElementStrides","PyArray_Empty","PyArray_EnsureAnyArray","PyArray_EnsureArray","PyArray_EquivTypenums","PyArray_EquivTypes","PyArray_FailUnlessWriteable","PyArray_FieldNames","PyArray_FillObjectArray","PyArray_FillWithScalar","PyArray_Flatten","PyArray_Free","PyArray_FromAny","PyArray_FromArray","PyArray_FromArrayAttr","PyArray_FromBuffer","PyArray_FromDims","PyArray_FromDimsAndDataAndDescr","PyArray_FromFile","PyArray_FromInterface","PyArray_FromIter","PyArray_FromScalar","PyArray_FromString","PyArray_FromStructInterface","PyArray_GetArrayParamsFromObject","PyArray_GetCastFunc","PyArray_GetEndianness","PyArray_GetField","PyArray_GetNDArrayCFeatureVersion","PyArray_GetNDArrayCVersion","PyArray_GetNumericOps","PyArray_GetPriority","PyArray_GetPtr","PyArray_INCREF","PyArray_InitArrFuncs","PyArray_InnerProduct","PyArray_IntTupleFromIntp","PyArray_IntpConverter","PyArray_IntpFromSequence","PyArray_Item_INCREF","PyArray_Item_XDECREF","PyArray_IterAllButAxis","PyArray_IterNew","PyArray_LexSort","PyArray_MapIterArray","PyArray_MapIterArrayCopyIfOverlap","PyArray_MapIterNext","PyArray_MapIterSwapAxes","PyArray_MatrixProduct","PyArray_MatrixProduct2","PyArray_Max","PyArray_Mean","PyArray_Min","PyArray_MinScalarType","PyArray_MoveInto","PyArray_MultiplyIntList","PyArray_MultiplyList","PyArray_NeighborhoodIterNew","PyArray_New","PyArray_NewCopy","PyArray_NewFlagsObject","PyArray_NewFromDescr","PyArray_NewLikeArray","PyArray_Newshape","PyArray_Nonzero","PyArray_ObjectType","PyArray_One","PyArray_OrderConverter","PyArray_OutputConverter","PyArray_OverflowMultiplyList","PyArray_Partition","PyArray_Prod","PyArray_PromoteTypes","PyArray_Ptp","PyArray_PutMask","PyArray_PutTo","PyArray_PyIntAsInt","PyArray_PyIntAsIntp","PyArray_Ravel","PyArray_RegisterCanCast","PyArray_RegisterCastFunc","PyArray_RegisterDataType","PyArray_RemoveAxesInPlace","PyArray_RemoveSmallest","PyArray_Repeat","PyArray_Reshape","PyArray_Resize","PyArray_ResolveWritebackIfCopy","PyArray_ResultType","PyArray_Return","PyArray_Round","PyArray_Scalar","PyArray_ScalarAsCtype","PyArray_ScalarFromObject","PyArray_ScalarKind","PyArray_SearchSorted","PyArray_SearchsideConverter","PyArray_SelectkindConverter","PyArray_SetBaseObject","PyArray_SetDatetimeParseFunction","PyArray_SetField","PyArray_SetNumericOps","PyArray_SetStringFunction","PyArray_SetUpdateIfCopyBase","PyArray_SetWritebackIfCopyBase","PyArray_Size","PyArray_Sort","PyArray_SortkindConverter","PyArray_Squeeze","PyArray_Std","PyArray_Sum","PyArray_SwapAxes","PyArray_TakeFrom","PyArray_TimedeltaStructToTimedelta","PyArray_TimedeltaToTimedeltaStruct","PyArray_ToFile","PyArray_ToList","PyArray_ToString","PyArray_Trace","PyArray_Transpose","PyArray_Type","PyArray_TypeObjectFromType","PyArray_TypestrConvert","PyArray_UpdateFlags","PyArray_ValidType","PyArray_View","PyArray_Where","PyArray_XDECREF","PyArray_Zero","PyArray_Zeros","PyBigArray_Type","PyBoolArrType_Type","PyByteArrType_Type","PyCDoubleArrType_Type","PyCFloatArrType_Type","PyCLongDoubleArrType_Type","PyCharacterArrType_Type","PyComplexFloatingArrType_Type","PyDataMem_FREE","PyDataMem_NEW","PyDataMem_NEW_ZEROED","PyDataMem_RENEW","PyDataMem_SetEventHook","PyDoubleArrType_Type","PyFlexibleArrType_Type","PyFloatArrType_Type","PyFloatingArrType_Type","PyGenericArrType_Type","PyInexactArrType_Type","PyIntArrType_Type","PyIntegerArrType_Type","PyLongArrType_Type","PyLongDoubleArrType_Type","PyLongLongArrType_Type","PyNumberArrType_Type","PyObjectArrType_Type","PyShortArrType_Type","PySignedIntegerArrType_Type","PyStringArrType_Type","PyUByteArrType_Type","PyUIntArrType_Type","PyULongArrType_Type","PyULongLongArrType_Type","PyUShortArrType_Type","PyUnicodeArrType_Type","PyUnsignedIntegerArrType_Type","PyVoidArrType_Type","_PyArrayScalar_BoolValues","_PyArray_GetSigintBuf","_PyArray_SigintHandler","borrow","borrow","borrow_mut","borrow_mut","from","from","from_subset","from_subset","get_type_object","into","into","is_in_subset","is_in_subset","to_subset","to_subset","to_subset_unchecked","to_subset_unchecked","try_from","try_from","try_into","try_into","type_id","type_id","NPY_ALIGNED_STRUCT","NPY_ARRAY_ALIGNED","NPY_ARRAY_BEHAVED","NPY_ARRAY_BEHAVED_NS","NPY_ARRAY_CARRAY","NPY_ARRAY_CARRAY_RO","NPY_ARRAY_C_CONTIGUOUS","NPY_ARRAY_DEFAULT","NPY_ARRAY_ELEMENTSTRIDES","NPY_ARRAY_ENSUREARRAY","NPY_ARRAY_ENSURECOPY","NPY_ARRAY_FARRAY","NPY_ARRAY_FARRAY_RO","NPY_ARRAY_FORCECAST","NPY_ARRAY_F_CONTIGUOUS","NPY_ARRAY_INOUT_ARRAY","NPY_ARRAY_INOUT_ARRAY2","NPY_ARRAY_INOUT_FARRAY","NPY_ARRAY_INOUT_FARRAY2","NPY_ARRAY_IN_ARRAY","NPY_ARRAY_IN_FARRAY","NPY_ARRAY_NOTSWAPPED","NPY_ARRAY_OUT_ARRAY","NPY_ARRAY_OUT_FARRAY","NPY_ARRAY_OWNDATA","NPY_ARRAY_UPDATEIFCOPY","NPY_ARRAY_UPDATE_ALL","NPY_ARRAY_WRITEABLE","NPY_ARRAY_WRITEBACKIFCOPY","NPY_FROM_FIELDS","NPY_ITEM_HASOBJECT","NPY_ITEM_IS_POINTER","NPY_ITEM_REFCOUNT","NPY_ITER_ALIGNED","NPY_ITER_ALLOCATE","NPY_ITER_ARRAYMASK","NPY_ITER_BUFFERED","NPY_ITER_COMMON_DTYPE","NPY_ITER_CONTIG","NPY_ITER_COPY","NPY_ITER_COPY_IF_OVERLAP","NPY_ITER_C_INDEX","NPY_ITER_DELAY_BUFALLOC","NPY_ITER_DONT_NEGATE_STRIDES","NPY_ITER_EXTERNAL_LOOP","NPY_ITER_F_INDEX","NPY_ITER_GLOBAL_FLAGS","NPY_ITER_GROWINNER","NPY_ITER_MULTI_INDEX","NPY_ITER_NBO","NPY_ITER_NO_BROADCAST","NPY_ITER_NO_SUBTYPE","NPY_ITER_OVERLAP_ASSUME_ELEMENTWISE","NPY_ITER_PER_OP_FLAGS","NPY_ITER_RANGED","NPY_ITER_READONLY","NPY_ITER_READWRITE","NPY_ITER_REDUCE_OK","NPY_ITER_REFS_OK","NPY_ITER_UPDATEIFCOPY","NPY_ITER_VIRTUAL","NPY_ITER_WRITEMASKED","NPY_ITER_WRITEONLY","NPY_ITER_ZEROSIZE_OK","NPY_LIST_PICKLE","NPY_NEEDS_INIT","NPY_NEEDS_PYAPI","NPY_OBJECT_DTYPE_FLAGS","NPY_USE_GETITEM","NPY_USE_SETITEM","None","None","None","None","None","None","None","None","None","None","None","None","None","None","None","None","None","None","None","None","None","None","None","None","None","None","None","None","None","None","None","None","NpyAuxData","NpyAuxData_CloneFunc","NpyAuxData_FreeFunc","NpyIter","NpyIter_GetMultiIndexFunc","NpyIter_IterNextFunc","PyArrayFlagsObject","PyArrayInterface","PyArrayIterObject","PyArrayMapIterObject","PyArrayMultiIterObject","PyArrayNeighborhoodIterObject","PyArrayObject","PyArray_ArgFunc","PyArray_ArgPartitionFunc","PyArray_ArgSortFunc","PyArray_ArrFuncs","PyArray_ArrayDescr","PyArray_Chunk","PyArray_CompareFunc","PyArray_CopySwapFunc","PyArray_CopySwapNFunc","PyArray_DatetimeDTypeMetaData","PyArray_DatetimeMetaData","PyArray_Descr","PyArray_Dims","PyArray_DotFunc","PyArray_FastClipFunc","PyArray_FastPutmaskFunc","PyArray_FastTakeFunc","PyArray_FillFunc","PyArray_FillWithScalarFunc","PyArray_FromStrFunc","PyArray_GetItemFunc","PyArray_NonzeroFunc","PyArray_PartitionFunc","PyArray_ScalarKindFunc","PyArray_ScanFunc","PyArray_SetItemFunc","PyArray_SortFunc","PyArray_VectorUnaryFunc","PyDataMem_EventHookFunc","PyUFuncGenericFunction","PyUFuncObject","PyUFunc_LegacyInnerLoopSelectionFunc","PyUFunc_MaskedInnerLoopSelectionFunc","PyUFunc_MaskedStridedInnerLoopFunc","PyUFunc_TypeResolutionFunc","Some","Some","Some","Some","Some","Some","Some","Some","Some","Some","Some","Some","Some","Some","Some","Some","Some","Some","Some","Some","Some","Some","Some","Some","Some","Some","Some","Some","Some","Some","Some","Some","_internal_iter","ait","alignment","ao","ao","argmax","argmin","argsort","arr","array","backstrides","backstrides","base","base","base","base","base","baseoffset","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","bounds","bounds","byteorder","c_metadata","cancastscalarkindto","cancastto","cast","castdict","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","compare","consec","constant","contiguous","contiguous","coordinates","coordinates","copyswap","copyswapn","core_dim_ixs","core_enabled","core_num_dim_ix","core_num_dims","core_offsets","core_signature","data","data","data","dataptr","dataptr","dataptr","descr","descr","dimensions","dimensions","dimensions","dimensions","dims_m1","dims_m1","doc","dotfunc","elsize","extra_op","extra_op_dtype","extra_op_flags","extra_op_iter","extra_op_next","extra_op_ptrs","f","factors","factors","fancy_dims","fancy_strides","fastclip","fastputmask","fasttake","fields","fill","fillwithscalar","flags","flags","flags","flags","flags","fmt","free","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_subset","from_subset","from_subset","from_subset","from_subset","from_subset","from_subset","from_subset","from_subset","from_subset","from_subset","from_subset","from_subset","from_subset","from_subset","from_subset","from_subset","fromstr","functions","getitem","hash","identity","index","index","index","index","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","itemsize","iter_count","iter_flags","iteraxes","iters","kind","legacy_inner_loop_selector","len","len","limits","limits","limits_sizes","limits_sizes","masked_inner_loop_selector","meta","metadata","mode","name","names","nargs","nd","nd","nd","nd","nd","nd_fancy","nd_m1","nd_m1","needs_api","nin","nonzero","nout","npy_iter_get_dataptr_t","ntypes","num","numiter","numiter","ob_base","ob_base","ob_base","ob_base","ob_base","ob_base","ob_base","ob_base","ob_base","obj","op_flags","outer","outer_next","outer_ptrs","outer_strides","ptr","ptr","ptr","reserved","reserved1","reserved2","scalarkind","scanfunc","setitem","shape","shape","size","size","size","size","sort","strides","strides","strides","strides","subarray","subspace","subspace_iter","subspace_next","subspace_ptrs","subspace_strides","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","translate","translate","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","two","type_","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_num","type_resolver","typekind","typeobj","types","unused","userloops","weakreflist","NPY_ANYORDER","NPY_BIG","NPY_BOOL","NPY_BOOLLTR","NPY_BOOL_SCALAR","NPY_BYTE","NPY_BYTELTR","NPY_BYTEORDER_CHAR","NPY_CASTING","NPY_CDOUBLE","NPY_CDOUBLELTR","NPY_CFLOAT","NPY_CFLOATLTR","NPY_CHAR","NPY_CHARLTR","NPY_CLIP","NPY_CLIPMODE","NPY_CLONGDOUBLE","NPY_CLONGDOUBLELTR","NPY_COMPLEXLTR","NPY_COMPLEX_SCALAR","NPY_CORDER","NPY_DATETIME","NPY_DATETIMELTR","NPY_DATETIMEUNIT","NPY_DOUBLE","NPY_DOUBLELTR","NPY_EQUIV_CASTING","NPY_FLOAT","NPY_FLOATINGLTR","NPY_FLOATLTR","NPY_FLOAT_SCALAR","NPY_FORTRANORDER","NPY_FR_D","NPY_FR_GENERIC","NPY_FR_M","NPY_FR_W","NPY_FR_Y","NPY_FR_as","NPY_FR_fs","NPY_FR_h","NPY_FR_m","NPY_FR_ms","NPY_FR_ns","NPY_FR_ps","NPY_FR_s","NPY_FR_us","NPY_GENBOOLLTR","NPY_HALF","NPY_HALFLTR","NPY_HEAPSORT","NPY_IGNORE","NPY_INT","NPY_INTLTR","NPY_INTNEG_SCALAR","NPY_INTPLTR","NPY_INTPOS_SCALAR","NPY_INTROSELECT","NPY_KEEPORDER","NPY_LITTLE","NPY_LONG","NPY_LONGDOUBLE","NPY_LONGDOUBLELTR","NPY_LONGLONG","NPY_LONGLONGLTR","NPY_LONGLTR","NPY_MERGESORT","NPY_NATBYTE","NPY_NATIVE","NPY_NOSCALAR","NPY_NOTYPE","NPY_NO_CASTING","NPY_NTYPES","NPY_OBJECT","NPY_OBJECTLTR","NPY_OBJECT_SCALAR","NPY_OPPBYTE","NPY_ORDER","NPY_QUICKSORT","NPY_RAISE","NPY_SAFE_CASTING","NPY_SAME_KIND_CASTING","NPY_SCALARKIND","NPY_SEARCHLEFT","NPY_SEARCHRIGHT","NPY_SEARCHSIDE","NPY_SELECTKIND","NPY_SHORT","NPY_SHORTLTR","NPY_SIGNEDLTR","NPY_SORTKIND","NPY_STRING","NPY_STRINGLTR","NPY_STRINGLTR2","NPY_SWAP","NPY_TIMEDELTA","NPY_TIMEDELTALTR","NPY_TYPECHAR","NPY_TYPEKINDCHAR","NPY_TYPES","NPY_UBYTE","NPY_UBYTELTR","NPY_UINT","NPY_UINTLTR","NPY_UINTPLTR","NPY_ULONG","NPY_ULONGLONG","NPY_ULONGLONGLTR","NPY_ULONGLTR","NPY_UNICODE","NPY_UNICODELTR","NPY_UNSAFE_CASTING","NPY_UNSIGNEDLTR","NPY_USERDEF","NPY_USHORT","NPY_USHORTLTR","NPY_VOID","NPY_VOIDLTR","NPY_WRAP","as_","as_","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","day","day","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_subset","from_subset","from_subset","from_subset","from_subset","from_subset","from_subset","from_subset","from_subset","from_subset","from_subset","from_subset","from_subset","from_subset","from_subset","from_subset","from_subset","from_subset","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hour","imag","imag","imag","imag","imag","imag","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","is_in_subset","min","month","npy_bool","npy_byte","npy_cdouble","npy_cfloat","npy_char","npy_clongdouble","npy_complex128","npy_complex256","npy_complex64","npy_datetime","npy_datetimestruct","npy_double","npy_float","npy_float128","npy_float16","npy_float32","npy_float64","npy_half","npy_hash_t","npy_int","npy_int16","npy_int32","npy_int64","npy_int8","npy_intp","npy_long","npy_longdouble","npy_longlong","npy_short","npy_stride_sort_item","npy_timedelta","npy_timedeltastruct","npy_ubyte","npy_ucs4","npy_uint","npy_uint16","npy_uint32","npy_uint64","npy_uint8","npy_uintp","npy_ulong","npy_ulonglong","npy_ushort","partial_cmp","perm","ps","ps","real","real","real","real","real","real","sec","sec","stride","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","to_subset_unchecked","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","us","us","year","PY_UFUNC_API","PyUFuncAPI","PyUFunc_DD_D","PyUFunc_D_D","PyUFunc_DefaultTypeResolver","PyUFunc_FF_F","PyUFunc_FF_F_As_DD_D","PyUFunc_F_F","PyUFunc_F_F_As_D_D","PyUFunc_FromFuncAndData","PyUFunc_FromFuncAndDataAndSignature","PyUFunc_FromFuncAndDataAndSignatureAndIdentity","PyUFunc_GG_G","PyUFunc_G_G","PyUFunc_GenericFunction","PyUFunc_GetPyValues","PyUFunc_OO_O","PyUFunc_OO_O_method","PyUFunc_O_O","PyUFunc_O_O_method","PyUFunc_On_Om","PyUFunc_RegisterLoopForDescr","PyUFunc_RegisterLoopForType","PyUFunc_ReplaceLoopBySignature","PyUFunc_SetUsesArraysAsData","PyUFunc_ValidateCasting","PyUFunc_checkfperr","PyUFunc_clearfperr","PyUFunc_d_d","PyUFunc_dd_d","PyUFunc_e_e","PyUFunc_e_e_As_d_d","PyUFunc_e_e_As_f_f","PyUFunc_ee_e","PyUFunc_ee_e_As_dd_d","PyUFunc_ee_e_As_ff_f","PyUFunc_f_f","PyUFunc_f_f_As_d_d","PyUFunc_ff_f","PyUFunc_ff_f_As_dd_d","PyUFunc_g_g","PyUFunc_getfperr","PyUFunc_gg_g","PyUFunc_handlefperr","borrow","borrow_mut","from","from_subset","into","is_in_subset","to_subset","to_subset_unchecked","try_from","try_into","type_id"],"q":[[0,"numpy"],[376,"numpy::array"],[462,"numpy::borrow"],[528,"numpy::convert"],[538,"numpy::datetime"],[586,"numpy::datetime::units"],[846,"numpy::npyffi"],[851,"numpy::npyffi::array"],[1175,"numpy::npyffi::flags"],[1245,"numpy::npyffi::objects"],[1777,"numpy::npyffi::types"],[2258,"numpy::npyffi::ufunc"],[2313,"ndarray::dimension::dim"],[2314,"ndarray::dimension::dynindeximpl"],[2315,"pyo3::marker"],[2316,"pyo3::instance"],[2317,"pyo3_ffi::object"],[2318,"pyo3::types::any"],[2319,"pyo3::instance"],[2320,"ndarray::dimension::dimension_trait"],[2321,"pyo3::err"],[2322,"std::os::raw"],[2323,"core::fmt"],[2324,"core::fmt"],[2325,"core::fmt"],[2326,"pyo3_ffi::unicodeobject"],[2327,"pyo3::err"],[2328,"pyo3::instance"],[2329,"pyo3::conversion"],[2330,"core::marker"],[2331,"std::os::raw"],[2332,"pyo3::err"],[2333,"core::any"],[2334,"pyo3_ffi::cpython::object"],[2335,"pyo3::types::typeobject"],[2336,"num_traits::cast"],[2337,"ndarray"],[2338,"ndarray"],[2339,"core::iter::traits::collect"],[2340,"ndarray"],[2341,"ndarray::aliases"],[2342,"core::marker"],[2343,"nalgebra::base::matrix_view"],[2344,"nalgebra::base::scalar"],[2345,"nalgebra::base::dimension"],[2346,"nalgebra::base::matrix_view"],[2347,"nalgebra::base::alias_view"],[2348,"core::cmp"],[2349,"std::os::raw"]],"d":["Marker type to indicate that the element type received via …","The given array is already borrowed","Inidcates why borrowing an array failed.","","","Represents that a type can be an element of PyArray.","Represents that given Vec cannot be treated as an array.","Flag that indicates whether this type is trivially …","","Create a one-dimensional index","one-dimensional","Create a two-dimensional index","two-dimensional","Create a three-dimensional index","three-dimensional","Create a four-dimensional index","four-dimensional","Create a five-dimensional index","five-dimensional","Create a six-dimensional index","six-dimensional","Create a dynamic-dimensional index","dynamic-dimensional","Represents that the given array is not contiguous.","The given array is not writeable","","","","","","","","","","","","Binding of numpy.dtype.","Implementation of functionality for PyArrayDescr.","","Receiver for arrays or array-like types.","Receiver for zero-dimensional arrays or array-like types.","Receiver for one-dimensional arrays or array-like types.","Receiver for two-dimensional arrays or array-like types.","Receiver for three-dimensional arrays or array-like types.","Receiver for four-dimensional arrays or array-like types.","Receiver for five-dimensional arrays or array-like types.","Receiver for six-dimensional arrays or array-like types.","Receiver for arrays or array-like types whose …","","A newtype wrapper around [u8; N] to handle byte scalars …","A newtype wrapper around [PyUCS4; N] to handle str_ scalars…","","","","","","","","","","","","","","","","","","","A safe, untyped wrapper for NumPy’s ndarray class.","Implementation of functionality for PyUntypedArray.","","","Marker type to indicate that the element type received via …","Returns the required alignment (bytes) of this type …","Returns the required alignment (bytes) of this type …","Returns the required alignment (bytes) of this type …","","","","Safe interface for NumPy’s N-dimensional arrays","Create an Array with one, two or three dimensions.","Returns a raw pointer to the underlying PyArrayObject.","Returns a raw pointer to the underlying PyArrayObject.","Returns self as *mut PyArray_Descr.","Returns self as *mut PyArray_Descr.","Gets the underlying FFI pointer, returns a borrowed …","Gets the underlying FFI pointer, returns a borrowed …","","","Returns the type descriptor for the base element of …","Returns the type descriptor for the base element of …","Types to safely create references into NumPy arrays","","","","","","","","","","","","","","","","","","","","","Returns an ASCII character indicating the byte-order of …","Returns an ASCII character indicating the byte-order of …","Returns an ASCII character indicating the byte-order of …","Returns a unique ASCII character for each of the 21 …","Returns a unique ASCII character for each of the 21 …","Returns a unique ASCII character for each of the 21 …","","","","","","","Defines conversion traits between Rust types and NumPy …","Support datetimes and timedeltas","","","","Return the dot product of two arrays.","Returns the type descriptor (“dtype”) for a registered …","Returns the dtype of the array.","Returns the dtype of the array.","Returns the type descriptor (“dtype”) for a registered …","Return the Einstein summation convention of given tensors.","Return the Einstein summation convention of given tensors.","","","","","","Returns bit-flags describing how this type descriptor is …","Returns bit-flags describing how this type descriptor is …","Returns bit-flags describing how this type descriptor is …","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","","","","","","","","","","","","","","","","","Returns the associated type descriptor (“dtype”) for …","Returns the associated type descriptor (“dtype”) for …","Returns the associated type descriptor (“dtype”) for …","","","","","Returns the type descriptor and offset of the field with …","Returns the type descriptor and offset of the field with …","Returns true if the type descriptor is a structured type.","Returns true if the type descriptor is a structured type.","Returns true if the type descriptor is a structured type.","Returns true if the type descriptor contains any …","Returns true if the type descriptor contains any …","Returns true if the type descriptor contains any …","Returns true if the type descriptor is a sub-array.","Returns true if the type descriptor is a sub-array.","Returns true if the type descriptor is a sub-array.","","","Imaginary portion of the complex number","Imaginary portion of the complex number","Return the inner product of two arrays.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Returns self as *mut PyArray_Descr while increasing the …","Returns self as *mut PyArray_Descr while increasing the …","","","","Returns true if the type descriptor is a struct which …","Returns true if the type descriptor is a struct which …","Returns true if the type descriptor is a struct which …","Returns true if the internal data of the array is …","Returns true if the internal data of the array is …","Returns true if the internal data of the array is …","Returns true if the internal data of the array is …","Returns true if the internal data of the array is …","Returns true if the internal data of the array is …","Returns true if the there are no elements in the array.","Returns true if the there are no elements in the array.","Returns true if the there are no elements in the array.","Returns true if two type descriptors are equivalent.","Returns true if two type descriptors are equivalent.","Returns true if the internal data of the array is …","Returns true if the internal data of the array is …","Returns true if the internal data of the array is …","","","","","","","","","","","Returns true if type descriptor byteorder is native, or …","Returns true if type descriptor byteorder is native, or …","Returns true if type descriptor byteorder is native, or …","","","Returns the element size of this type descriptor.","Returns the element size of this type descriptor.","Returns the element size of this type descriptor.","Returns an ASCII character (one of biufcmMOSUV) …","Returns an ASCII character (one of biufcmMOSUV) …","Returns an ASCII character (one of biufcmMOSUV) …","Calculates the total number of elements in the array.","Calculates the total number of elements in the array.","Calculates the total number of elements in the array.","","Returns an ordered list of field names, or None if there …","Returns an ordered list of field names, or None if there …","","Returns the number of dimensions if this type descriptor …","Returns the number of dimensions if this type descriptor …","Returns the number of dimensions if this type descriptor …","Returns the number of dimensions of the array.","Returns the number of dimensions of the array.","Returns the number of dimensions of the array.","Creates a new type descriptor (“dtype”) object from an …","Creates a new type descriptor (“dtype”) object from an …","Low-Level bindings for NumPy C API.","Returns a unique number for each of the 21 different …","Returns a unique number for each of the 21 different …","Returns a unique number for each of the 21 different …","Shortcut for creating a type descriptor of object type.","Shortcut for creating a type descriptor of object type.","Returns the type descriptor for a registered type.","Returns the type descriptor for a registered type.","","","Create a PyArray with one, two or three dimensions.","","Real portion of the complex number","Real portion of the complex number","Returns the shape of the sub-array.","Returns the shape of the sub-array.","Returns a slice which contains dimmensions of the array.","Returns a slice which contains dimmensions of the array.","Returns a slice which contains dimmensions of the array.","Returns a slice indicating how many bytes to advance when …","Returns a slice indicating how many bytes to advance when …","Returns a slice indicating how many bytes to advance when …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the array scalar corresponding to this type …","Returns the array scalar corresponding to this type …","A safe, statically-typed wrapper for NumPy’s ndarray …","Zero-dimensional array.","One-dimensional array.","Two-dimensional array.","Three-dimensional array.","Four-dimensional array.","Five-dimensional array.","Six-dimensional array.","Dynamic-dimensional array.","Implementation of functionality for PyArray<T, D>.","Return evenly spaced values within a given interval.","Returns an ArrayView of the internal array.","Returns an ArrayViewMut of the internal array.","","Returns the internal array as RawArrayView enabling …","Returns the internal array as RawArrayViewMut enabling …","","Returns an immutable view of the internal data as a slice.","Returns a mutable view of the internal data as a slice.","Access an untyped representation of this array.","Access an untyped representation of this array.","","Creates a NumPy array backed by array and ties its …","","Cast the PyArray<T> to PyArray<U>, by allocating a new …","Copies self into other, performing a data type conversion …","Returns a pointer to the first element of the array.","","Same as shape, but returns D instead of &[usize].","","","","Returns the argument unchanged.","Construct a NumPy array from a ndarray::ArrayBase.","Constructs a reference to a PyArray from a raw point to a …","","Construct a one-dimensional array from an Iterator.","Constructs a NumPy from an ndarray::Array","Construct a NumPy array containing objects stored in a …","Constructs a reference to a PyArray from a raw pointer to …","","Construct a one-dimensional array from a slice.","","Construct a one-dimensional array from a Vec<T>.","Construct a two-dimension array from a Vec<Vec<T>>.","Construct a three-dimensional array from a Vec<Vec<Vec<T>>>…","Get a reference of the specified element if the given …","Returns a handle to NumPy’s multiarray module.","Same as get, but returns Option<&mut T>.","Get a copy of the specified element in the array.","Calls U::from(self).","","","","","Get the single element of a zero-dimensional array.","Creates a new uninitialized NumPy array.","Get an immutable borrow of the NumPy array","Get a mutable borrow of the NumPy array","Special case of reshape_with_order which keeps the memory …","Construct a new array which has same values as self, but …","Extends or truncates the dimensions of an array.","Turn an array with fixed dimensionality into one with …","","Turn &PyArray<T,D> into Py<PyArray<T,D>>, i.e. a pointer …","Get a copy of the array as an ndarray::Array.","","","","Returns a copy of the internal data of the array as a Vec.","Try to convert this array into a nalgebra::MatrixView …","Try to convert this array into a nalgebra::MatrixViewMut …","","","","","","Get an immutable borrow of the NumPy array","Get a mutable borrow of the NumPy array","","","","Get an immutable reference of the specified element, …","Same as uget, but returns &mut T.","Same as uget, but returns *mut T.","Construct a new NumPy array filled with zeros.","Read-only borrow of an array.","Read-only borrow of a zero-dimensional array.","Read-only borrow of a one-dimensional array.","Read-only borrow of a two-dimensional array.","Read-only borrow of a three-dimensional array.","Read-only borrow of a four-dimensional array.","Read-only borrow of a five-dimensional array.","Read-only borrow of a six-dimensional array.","Read-only borrow of an array whose dimensionality is …","Read-write borrow of an array.","Read-write borrow of a zero-dimensional array.","Read-write borrow of a one-dimensional array.","Read-write borrow of a two-dimensional array.","Read-write borrow of a three-dimensional array.","Read-write borrow of a four-dimensional array.","Read-write borrow of a five-dimensional array.","Read-write borrow of a six-dimensional array.","Read-write borrow of an array whose dimensionality is …","Provides an immutable array view of the interior of the …","Provides a mutable array view of the interior of the NumPy …","Convert this two-dimensional array into a …","Convert this one-dimensional array into a …","Convert this two-dimensional array into a …","Convert this one-dimensional array into a …","Provide an immutable slice view of the interior of the …","Provide a mutable slice view of the interior of the NumPy …","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","","Provide an immutable reference to an element of the NumPy …","Provide a mutable reference to an element of the NumPy …","Calls U::from(self).","Calls U::from(self).","","","Extends or truncates the dimensions of an array.","","","","","","Try to convert this array into a nalgebra::MatrixView …","Try to convert this array into a nalgebra::MatrixViewMut …","","","","","","","The dimension type of the resulting array.","The dimension type of the resulting array.","Conversion trait from owning Rust types into PyArray.","The element type of resulting array.","The element type of resulting array.","Trait implemented by types that can be used to index an …","Utility trait to specify the dimensions of an array.","Conversion trait from borrowing Rust types to PyArray.","Consumes self and moves its data into a NumPy array.","Copies the content pointed to by &self into a newly …","The abbrevation used for debug formatting","Corresponds to the datetime64 scalar type","Corresponds to the [timedelta64][scalars-datetime64] …","The matching NumPy datetime unit code","Represents the datetime units supported by NumPy","","","","","","","","","","","","","","","Returns the argument unchanged.","","Returns the argument unchanged.","","","","","","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","Predefined implementors of the Unit trait","Attoseconds, i.e. 10^-18 seconds","Days, i.e. 24 hours","Femtoseconds, i.e. 10^-15 seconds","Hours, i.e. 60 minutes","Microseconds, i.e. 10^-6 seconds","Milliseconds, i.e. 10^-3 seconds","Minutes, i.e. 60 seconds","Months, i.e. 30 days","Nanoseconds, i.e. 10^-9 seconds","Picoseconds, i.e. 10^-12 seconds","Seconds","Weeks, i.e. 7 days","Years, i.e. 12 months","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","","","","","","","","","","","","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Low-Level binding for Array API","","Low-Lebel binding for NumPy C API C-objects","","Low-Level binding for UFunc API","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","All type objects exported by the NumPy API.","A global variable which stores a ‘capsule’ pointer to …","See PY_ARRAY_API for more.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Checks that op is an instance of PyArray or not.","","","Checks that op is an exact instance of PyArray or not.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Get a pointer of the type object assocaited with ty.","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","No value.","No value.","No value.","No value.","No value.","No value.","No value.","No value.","No value.","No value.","No value.","No value.","No value.","No value.","No value.","No value.","No value.","No value.","No value.","No value.","No value.","No value.","No value.","No value.","No value.","No value.","No value.","No value.","No value.","No value.","No value.","No value.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Some value of type T.","Some value of type T.","Some value of type T.","Some value of type T.","Some value of type T.","Some value of type T.","Some value of type T.","Some value of type T.","Some value of type T.","Some value of type T.","Some value of type T.","Some value of type T.","Some value of type T.","Some value of type T.","Some value of type T.","Some value of type T.","Some value of type T.","Some value of type T.","Some value of type T.","Some value of type T.","Some value of type T.","Some value of type T.","Some value of type T.","Some value of type T.","Some value of type T.","Some value of type T.","Some value of type T.","Some value of type T.","Some value of type T.","Some value of type T.","Some value of type T.","Some value of type T.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","","","","","","","","","","","","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","A global variable which stores a ‘capsule’ pointer to …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","",""],"i":[0,12,0,0,0,0,0,26,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,7,7,8,11,12,0,0,13,15,7,6,6,15,6,15,7,6,0,6,15,37,39,25,8,11,12,21,22,6,15,37,39,25,8,11,12,21,22,6,7,7,6,7,7,21,22,21,22,21,22,0,0,6,15,25,0,0,13,15,0,0,0,21,22,25,6,15,6,7,7,6,6,15,15,37,39,25,8,8,11,11,12,12,21,21,22,22,6,15,37,39,25,8,11,12,21,21,22,22,6,15,6,15,25,6,15,37,39,25,8,11,12,21,22,0,26,26,26,164,165,21,22,7,6,6,7,7,6,7,7,6,7,7,21,22,164,165,0,6,15,37,39,25,8,11,12,21,22,7,6,6,15,15,6,7,7,15,13,13,15,13,13,15,13,13,7,6,15,13,13,6,15,37,39,25,8,11,12,21,22,6,7,7,6,15,6,7,7,6,7,7,15,13,13,0,7,6,0,6,7,7,15,13,13,6,6,0,6,7,7,6,6,6,6,21,22,0,0,164,165,7,6,15,13,13,15,13,13,6,15,21,22,6,15,8,11,12,21,22,6,15,37,39,25,8,11,12,21,22,6,15,37,39,25,8,11,12,21,22,6,6,15,15,37,39,25,8,11,12,21,22,6,15,6,15,6,15,37,39,25,8,11,12,21,22,6,15,6,15,37,39,25,8,11,12,21,22,6,15,7,6,0,0,0,0,0,0,0,0,0,0,28,28,28,28,28,28,28,28,28,65,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,0,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,80,81,80,80,81,81,80,81,80,81,80,81,80,80,80,81,80,81,80,81,80,81,80,81,80,81,80,81,80,81,80,81,80,81,81,80,80,81,80,81,80,81,80,81,80,81,80,81,90,91,0,90,91,0,0,0,90,91,94,0,0,94,0,92,95,92,95,92,95,92,95,92,95,92,95,92,95,92,92,95,95,92,95,92,95,92,95,92,95,92,95,92,95,92,95,92,95,92,95,92,95,92,95,92,95,0,0,0,0,0,0,0,0,0,0,0,0,0,0,101,102,103,104,105,106,107,108,109,110,111,112,113,101,102,103,104,105,106,107,108,109,110,111,112,113,101,102,103,104,105,106,107,108,109,110,111,112,113,101,102,103,104,105,106,107,108,109,110,111,112,113,101,102,103,104,105,106,107,108,109,110,111,112,113,101,102,103,104,105,106,107,108,109,110,111,112,113,101,102,103,104,105,106,107,108,109,110,111,112,113,101,102,103,104,105,106,107,108,109,110,111,112,113,101,102,103,104,105,106,107,108,109,110,111,112,113,101,102,103,104,105,106,107,108,109,110,111,112,113,101,102,103,104,105,106,107,108,109,110,111,112,113,101,102,103,104,105,106,107,108,109,110,111,112,113,101,102,103,104,105,106,107,108,109,110,111,112,113,101,102,103,104,105,106,107,108,109,110,111,112,113,101,102,103,104,105,106,107,108,109,110,111,112,113,101,102,103,104,105,106,107,108,109,110,111,112,113,101,102,103,104,105,106,107,108,109,110,111,112,113,101,102,103,104,105,106,107,108,109,110,111,112,113,101,102,103,104,105,106,107,108,109,110,111,112,113,0,0,0,0,0,146,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,0,0,0,146,146,146,146,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,0,114,114,0,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,146,114,114,114,114,114,114,114,114,114,146,146,146,146,146,146,146,146,114,114,114,114,114,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,114,114,114,146,114,146,114,146,114,146,114,114,146,114,146,114,146,114,146,114,146,114,146,114,146,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,166,167,168,169,170,171,172,173,136,174,175,176,177,178,179,180,181,182,183,184,185,163,186,187,188,189,120,119,145,190,191,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,166,167,168,169,170,171,172,173,136,174,175,176,177,178,179,180,181,182,183,184,185,163,186,187,188,189,120,119,145,190,191,192,151,140,16,141,151,138,138,138,148,140,141,151,14,147,126,153,154,140,14,16,147,138,148,139,126,149,150,118,141,125,151,140,152,153,154,14,16,147,138,148,139,126,149,150,118,141,125,151,140,152,153,154,141,151,16,16,138,138,138,138,14,16,147,138,148,139,126,149,150,118,141,125,151,140,152,153,154,152,14,16,147,138,148,139,126,149,150,118,141,125,151,140,152,153,154,138,140,151,141,151,141,151,138,138,150,150,150,150,150,150,14,149,150,141,151,140,14,149,14,125,151,140,141,151,150,138,16,140,140,140,140,140,140,16,141,151,140,140,138,138,138,16,138,138,14,16,148,126,149,118,152,14,16,147,138,148,139,126,149,150,118,141,125,151,140,152,153,154,14,16,147,138,148,139,126,149,150,118,141,125,151,140,152,153,154,138,150,138,16,150,141,125,151,140,14,16,147,138,148,139,126,149,150,118,141,125,151,140,152,153,154,14,16,147,138,148,139,126,149,150,118,141,125,151,140,152,153,154,149,140,150,140,125,16,150,139,126,141,151,141,151,150,154,16,151,150,16,150,14,149,125,151,140,140,141,151,140,150,138,150,0,150,153,125,140,14,16,148,126,150,141,125,151,140,150,150,140,140,140,140,139,126,150,152,150,150,138,138,138,147,149,141,125,151,140,138,14,149,141,151,16,140,140,140,140,140,14,16,147,138,148,139,126,149,150,118,141,125,151,140,152,153,154,14,16,147,138,148,139,126,149,150,118,141,125,151,140,152,153,154,14,16,147,138,148,139,126,149,150,118,141,125,151,140,152,153,154,141,151,14,16,147,138,148,139,126,149,150,118,141,125,151,140,152,153,154,14,16,147,138,148,139,126,149,150,118,141,125,151,140,152,153,154,149,16,14,16,147,138,148,139,126,149,150,118,141,125,151,140,152,153,154,16,150,149,16,150,140,150,14,82,161,158,159,127,158,159,0,0,158,159,158,159,158,159,128,0,158,159,160,127,82,158,159,0,158,159,116,158,160,159,127,82,131,131,131,131,131,131,131,131,131,131,131,131,131,131,160,158,159,123,161,158,159,127,159,127,122,82,161,158,158,159,158,159,159,123,161,161,127,158,116,158,158,159,127,161,0,123,128,116,116,0,142,142,0,0,158,159,160,0,158,159,159,161,158,159,0,0,0,158,159,158,159,159,158,158,159,159,158,159,116,160,158,158,159,158,159,128,132,143,155,156,157,82,127,123,142,131,158,122,116,128,132,143,130,159,160,161,155,156,157,82,127,123,142,131,158,122,116,128,132,143,130,159,160,161,155,156,157,82,127,123,142,131,158,122,116,128,132,143,130,159,160,161,155,156,157,82,127,123,142,131,158,122,116,128,132,143,130,159,160,161,158,132,143,82,127,123,142,131,158,122,116,128,161,155,156,157,82,127,123,142,131,158,122,116,132,143,130,159,160,161,155,156,157,82,127,123,142,131,158,122,116,128,132,143,130,159,160,161,155,156,157,82,127,123,142,131,158,122,116,128,132,143,130,159,160,161,82,127,123,142,131,158,122,116,128,161,132,193,194,195,155,156,157,155,156,157,82,127,123,142,131,158,122,116,128,132,143,130,159,160,161,155,156,157,82,127,123,142,131,158,122,116,128,132,143,130,159,160,161,132,132,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,158,130,132,143,193,194,195,155,156,157,132,143,130,155,156,157,82,127,123,142,131,158,122,116,128,132,143,130,159,160,161,155,156,157,82,127,123,142,131,158,122,116,128,132,143,130,159,160,161,155,156,157,82,127,123,142,131,158,122,116,128,132,143,130,159,160,161,155,156,157,82,127,123,142,131,158,122,116,128,132,143,130,159,160,161,155,156,157,82,127,123,142,131,158,122,116,128,132,143,130,159,160,161,155,156,157,82,127,123,142,131,158,122,116,128,132,143,130,159,160,161,132,143,132,0,0,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162],"f":[0,0,0,0,0,0,0,0,0,[1,[[3,[[2,[1]]]]]],0,[[1,1],[[3,[[2,[1]]]]]],0,[[1,1,1],[[3,[[2,[1]]]]]],0,[[1,1,1,1],[[3,[[2,[1]]]]]],0,[[1,1,1,1,1],[[3,[[2,[1]]]]]],0,[[1,1,1,1,1,1],[[3,[[2,[1]]]]]],0,[[[4,[1]]],[[3,[5]]]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[6,1],[7,1],[7,1],[[8,9],10],[[11,9],10],[[12,9],10],0,0,[13,14],[15,14],[7,16],[6,16],[6,17],[15,17],[6,18],[15,18],[7,[[19,[6]]]],[6,6],0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[6,20],[7,20],[7,20],[6,20],[7,20],[7,20],[21,21],[22,22],[[-1,-2],23,[],[]],[[-1,-2],23,[],[]],[[21,21],24],[[22,22],24],0,0,[6,18],[15,18],[[[25,[-1,-2,-3]]],-4,26,27,0,[]],[[[28,[-1,-2]],[28,[-1,-3]]],[[29,[-4]]],26,27,27,[[0,[-1]]]],[9,6],[13,[[19,[6]]]],[15,6],[9,[[19,[6]]]],[[30,[4,[[28,[-1,31]]]]],[[29,[-2]]],26,[[0,[-1]]]],0,[[21,21],32],[[22,22],32],[18,[[29,[[25,[-1,-2,-3]]]]],26,27,0],[[[19,[18]]],[[29,[6]]]],[[[19,[18]]],[[29,[15]]]],[6,33],[7,33],[7,33],[[6,34],[[36,[23,35]]]],[[6,34],[[36,[23,35]]]],[[15,34],[[36,[23,35]]]],[[15,34],[[36,[23,35]]]],[[37,34],38],[[39,34],38],[[[25,[-1,-2,-3]],34],38,[26,40],[27,40],[0,40]],[[8,34],38],[[8,34],38],[[11,34],38],[[11,34],38],[[12,34],38],[[12,34],38],[[21,34],38],[[21,34],38],[[22,34],38],[[22,34],38],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[2,[41]]],21],[-1,-1,[]],[[[2,[42]]],22],[[9,17],[[43,[-1]]],[]],[[9,17],[[43,[-1]]],[]],[[9,17],[[43,[-1]]],[]],[[9,17],[[43,[-1]]],[]],[[[19,[18]]],[[36,[-1,44]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,[9,6],[9,6],[9,[[19,[6]]]],[9,[[19,[6]]]],[9,[[19,[6]]]],[9,[[19,[6]]]],[9,[[19,[6]]]],[[7,30],[[29,[[23,[[19,[6]],1]]]]]],[[6,30],[[29,[[23,[6,1]]]]]],[6,32],[7,32],[7,32],[6,32],[7,32],[7,32],[6,32],[7,32],[7,32],[[21,-1],23,45],[[22,-1],23,45],0,0,[[[28,[-1,-2]],[28,[-1,-3]]],[[29,[-4]]],26,27,27,[[0,[-1]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[7,16],[6,16],[[6,9],[[46,[6]]]],[[15,9],[[46,[15]]]],[[15,9],10],[6,32],[7,32],[7,32],[15,32],[13,32],[13,32],[15,32],[13,32],[13,32],[15,32],[13,32],[13,32],[[7,7],32],[[6,6],32],[15,32],[13,32],[13,32],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[6,[[43,[32]]]],[7,[[43,[32]]]],[7,[[43,[32]]]],[18,32],[[[19,[18]]],32],[6,1],[7,1],[7,1],[6,20],[7,20],[7,20],[15,1],[13,1],[13,1],0,[7,[[43,[[47,[30]]]]]],[6,[[43,[[47,[30]]]]]],0,[6,1],[7,1],[7,1],[15,1],[13,1],[13,1],[[9,-1],[[29,[6]]],[48,49]],[[9,-1],[[29,[[19,[6]]]]],[48,49]],0,[6,50],[7,50],[7,50],[9,6],[9,[[19,[6]]]],[9,6],[9,[[19,[6]]]],[[21,21],[[43,[24]]]],[[22,22],[[43,[24]]]],0,0,0,0,[7,[[47,[1]]]],[6,[[47,[1]]]],[15,[[4,[1]]]],[13,[[4,[1]]]],[13,[[4,[1]]]],[15,[[4,[51]]]],[13,[[4,[51]]]],[13,[[4,[51]]]],[[6,9],10],[[15,9],10],[-1,-2,[],[]],[-1,-2,[],[]],[-1,52,[]],[-1,52,[]],[-1,52,[]],[-1,52,[]],[-1,52,[]],[-1,52,[]],[-1,52,[]],[-1,[[43,[-2]]],[],[]],[-1,[[43,[-2]]],[],[]],[-1,[[43,[-2]]],[],[]],[-1,[[43,[-2]]],[],[]],[-1,[[43,[-2]]],[],[]],[-1,[[43,[-2]]],[],[]],[-1,[[43,[-2]]],[],[]],[-1,[[43,[-2]]],[],[]],[-1,[[43,[-2]]],[],[]],[-1,[[43,[-2]]],[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2,53]]],[[54,[18]]],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2,53]]],[[54,[18]]],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2,53]]],[[54,[18]]],[]],[-1,[[36,[-2,53]]],[[54,[18]]],[]],[-1,-2,[[54,[18]]],[]],[-1,-2,[[54,[18]]],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[[[19,[18]]],32],[[[19,[18]]],32],[-1,55,[]],[-1,55,[]],[-1,55,[]],[-1,55,[]],[-1,55,[]],[-1,55,[]],[-1,55,[]],[-1,55,[]],[-1,55,[]],[-1,55,[]],[9,56],[9,56],[7,[[19,[57]]]],[6,57],0,0,0,0,0,0,0,0,0,0,[[9,-1,-1,-1],[[28,[-1,58]]],[26,[60,[59]]]],[[[28,[-1,-2]]],[[61,[-1,-2]]],26,27],[[[28,[-1,-2]]],[[62,[-1,-2]]],26,27],[[[28,[-1,-2]]],17,[],[]],[[[28,[-1,-2]]],[[63,[-1,-2]]],26,27],[[[28,[-1,-2]]],[[64,[-1,-2]]],26,27],[[[28,[-1,-2]]],18,[],[]],[[[28,[-1,-2]]],[[36,[[4,[-1]],11]]],26,27],[[[28,[-1,-2]]],[[36,[[4,[-1]],11]]],26,27],[65,[[19,[15]]]],[[[28,[-1,-2]]],15,[],[]],[-1,-2,[],[]],[[[66,[-2,-3]],18],[[28,[-1,-3]]],26,[[68,[],[[67,[-1]]]]],27],[-1,-2,[],[]],[[[28,[-1,-2]],32],[[29,[[28,[-3,-2]]]]],26,[],26],[[[28,[-1,-2]],[28,[-3,-2]]],[[29,[23]]],26,[],26],[[[28,[-1,-2]]],[],[],[]],[[[28,[-1,-2]]],-3,[],[],[]],[[[28,[-1,-2]]],-2,26,27],[[[19,[18]]],[[29,[[28,[-1,-2]]]]],26,27],[[[28,[-1,-2]],34],[[36,[23,35]]],[],[]],[[[28,[-1,-2]],34],[[36,[23,35]]],[],[]],[-1,-1,[]],[[9,[66,[-2,-3]]],[[28,[-1,-3]]],26,[[68,[],[[67,[-1]]]]],27],[[9,17],[[28,[-1,-2]]],[],[]],[[9,17],[[43,[-1]]],[]],[[9,-2],[[28,[-1,58]]],26,[[70,[],[[69,[-1]]]]]],[[9,[71,[-1,-2]]],[[28,[-1,-2]]],26,27],[[9,[71,[[46,[-1]],-2]]],[[28,[10,-2]]],[],27],[[9,17],[[28,[-1,-2]]],[],[]],[[9,17],[[43,[-1]]],[]],[[9,[4,[-1]]],[[28,[-1,58]]],26],[-1,-2,[],[]],[[9,[47,[-1]]],[[28,[-1,58]]],26],[[9,[4,[[47,[-1]]]]],[[36,[[28,[-1,72]],8]]],26],[[9,[4,[[47,[[47,[-1]]]]]]],[[36,[[28,[-1,73]],8]]],26],[[[28,[-1,-2]],-3],[[43,[-1]]],26,27,[[75,[],[[74,[-2]]]]]],[9,[[29,[[19,[76]]]]]],[[[28,[-1,-2]],-3],[[43,[-1]]],26,27,[[75,[],[[74,[-2]]]]]],[[[28,[-1,-2]],-3],[[43,[-1]]],26,27,[[75,[],[[74,[-2]]]]]],[-1,-2,[],[]],[[[28,[-1,-2]],9],10,[],[]],[[[28,[-1,-2]],9],[[46,[[28,[-1,-2]]]]],[],[]],[-1,32,[]],[[[19,[18]]],32],[[[28,[-1,77]]],-1,[78,26]],[[9,-2,32],[[28,[-3,-1]]],27,[[79,[],[[74,[-1]]]]],26],[[[28,[-1,-2]]],[[80,[-1,-2]]],26,27],[[[28,[-1,-2]]],[[81,[-1,-2]]],26,27],[[[28,[-1,-2]],-3],[[29,[[28,[-1]]]]],26,[],79],[[[28,[-1,-2]],-3,82],[[29,[[28,[-1]]]]],26,[],79],[[[28,[-1,-2]],-3],[[29,[23]]],26,[],79],[[[28,[-1,-2]]],[[28,[-1,31]]],26,27],[[[28,[-1,-2]],9],10,[],[]],[[[28,[-1,-2]]],[[46,[[28,[-1,-2]]]]],[],[]],[[[28,[-1,-2]]],[[71,[-1,-2]]],26,27],[-1,52,[]],[-1,[[43,[-2]]],[],[]],[-1,-2,[],[]],[[[28,[-1,-2]]],[[36,[[47,[-1]],11]]],26,27],[[[28,[-1,-2]]],[[43,[[83,[-1,-3,-4,-5,-6]]]]],[84,26],27,85,85,85,85],[[[28,[-1,-2]]],[[43,[[86,[-1,-3,-4,-5,-6]]]]],[84,26],27,85,85,85,85],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2,53]]],[[54,[18]]],[]],[-1,[[36,[-2,53]]],[[54,[18]]],[]],[-1,-2,[[54,[18]]],[]],[-1,[[36,[-2]]],[],[]],[[[28,[-1,-2]]],[[36,[[80,[-1,-2]],12]]],26,27],[[[28,[-1,-2]]],[[36,[[81,[-1,-2]],12]]],26,27],[[[19,[18]]],32],[-1,55,[]],[9,56],[[[28,[-1,-2]],-3],-1,26,27,[[75,[],[[74,[-2]]]]]],[[[28,[-1,-2]],-3],-1,26,27,[[75,[],[[74,[-2]]]]]],[[[28,[-1,-2]],-3],[],26,27,[[75,[],[[74,[-2]]]]]],[[9,-2,32],[[28,[-3,-1]]],27,[[79,[],[[74,[-1]]]]],26],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[[80,[-1,-2]]],[[61,[-1,-2]]],26,27],[[[81,[-1,-2]]],[[62,[-1,-2]]],26,27],[[[80,[-1,72]]],[[88,[-1,87,87]]],[84,26]],[[[80,[-1,58]]],[[88,[-1,87,87]]],[84,26]],[[[81,[-1,72]]],[[89,[-1,87,87]]],[84,26]],[[[81,[-1,58]]],[[89,[-1,87,87]]],[84,26]],[[[80,[-1,-2]]],[[36,[[4,[-1]],11]]],26,27],[[[81,[-1,-2]]],[[36,[[4,[-1]],11]]],26,27],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[80,[-1,-2]]],[[80,[-1,-2]]],26,27],[[-1,-2],23,[],[]],[[[80,[-1,-2]]],-3,26,27,[]],[[[81,[-1,-2]]],-3,26,27,[]],[[[80,[-1,-2]]],23,26,27],[[[81,[-1,-2]]],23,26,27],[18,[[29,[[80,[-1,-2]]]]],26,27],[18,[[29,[[81,[-1,-2]]]]],26,27],[[[80,[-1,-2]],34],38,26,27],[[[81,[-1,-2]],34],38,26,27],[-1,-1,[]],[-1,-1,[]],[[[19,[18]]],[[36,[-1,44]]],[]],[[[19,[18]]],[[36,[-1,44]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[80,[-1,-2]],-3],[[43,[-1]]],26,27,[[75,[],[[74,[-2]]]]]],[[[81,[-1,-2]],-3],[[43,[-1]]],26,27,[[75,[],[[74,[-2]]]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,32,[]],[-1,32,[]],[[[81,[-1,58]],-2],[[29,[[81,[-1,58]]]]],26,79],[-1,-2,[],[]],[-1,[[43,[-2]]],[],[]],[-1,[[43,[-2]]],[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[80,[-1,-2]]],[[43,[[83,[-1,-3,-4,-5,-6]]]]],[84,26],27,85,85,85,85],[[[81,[-1,-2]]],[[43,[[86,[-1,-3,-4,-5,-6]]]]],[84,26],27,85,85,85,85],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,55,[]],[-1,55,[]],0,0,0,0,0,0,0,0,[[[90,[],[[69,[-1]],[74,[-2]]]],9],[[28,[-1,-2]]],26,27],[[[91,[],[[69,[-1]],[74,[-2]]]],9],[[28,[-1,-2]]],26,27],0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[92,[-1]]],[[92,[-1]]],[93,94]],[[[95,[-1]]],[[95,[-1]]],[93,94]],[[-1,-2],23,[],[]],[[-1,-2],23,[],[]],[[[92,[-1]],[92,[-1]]],24,[96,94]],[[[95,[-1]],[95,[-1]]],24,[96,94]],[[[92,[-1]],[92,[-1]]],32,[97,94]],[[[95,[-1]],[95,[-1]]],32,[97,94]],[[[92,[-1]],34],38,94],[[[95,[-1]],34],38,94],[-1,-1,[]],[98,[[92,[-1]]],94],[-1,-1,[]],[98,[[95,[-1]]],94],[-1,-2,[],[]],[-1,-2,[],[]],[9,[[19,[6]]]],[9,[[19,[6]]]],[[[92,[-1]],-2],23,[99,94],45],[[[95,[-1]],-2],23,[99,94],45],[-1,-2,[],[]],[-1,-2,[],[]],[-1,32,[]],[-1,32,[]],[[[92,[-1]],[92,[-1]]],[[43,[24]]],[100,94]],[[[95,[-1]],[95,[-1]]],[[43,[24]]],[100,94]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[43,[-2]]],[],[]],[-1,[[43,[-2]]],[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,55,[]],[-1,55,[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[101,101],[102,102],[103,103],[104,104],[105,105],[106,106],[107,107],[108,108],[109,109],[110,110],[111,111],[112,112],[113,113],[[-1,-2],23,[],[]],[[-1,-2],23,[],[]],[[-1,-2],23,[],[]],[[-1,-2],23,[],[]],[[-1,-2],23,[],[]],[[-1,-2],23,[],[]],[[-1,-2],23,[],[]],[[-1,-2],23,[],[]],[[-1,-2],23,[],[]],[[-1,-2],23,[],[]],[[-1,-2],23,[],[]],[[-1,-2],23,[],[]],[[-1,-2],23,[],[]],[[101,101],24],[[102,102],24],[[103,103],24],[[104,104],24],[[105,105],24],[[106,106],24],[[107,107],24],[[108,108],24],[[109,109],24],[[110,110],24],[[111,111],24],[[112,112],24],[[113,113],24],[[101,101],32],[[102,102],32],[[103,103],32],[[104,104],32],[[105,105],32],[[106,106],32],[[107,107],32],[[108,108],32],[[109,109],32],[[110,110],32],[[111,111],32],[[112,112],32],[[113,113],32],[[101,34],38],[[102,34],38],[[103,34],38],[[104,34],38],[[105,34],38],[[106,34],38],[[107,34],38],[[108,34],38],[[109,34],38],[[110,34],38],[[111,34],38],[[112,34],38],[[113,34],38],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[101,-1],23,45],[[102,-1],23,45],[[103,-1],23,45],[[104,-1],23,45],[[105,-1],23,45],[[106,-1],23,45],[[107,-1],23,45],[[108,-1],23,45],[[109,-1],23,45],[[110,-1],23,45],[[111,-1],23,45],[[112,-1],23,45],[[113,-1],23,45],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[[101,101],[[43,[24]]]],[[102,102],[[43,[24]]]],[[103,103],[[43,[24]]]],[[104,104],[[43,[24]]]],[[105,105],[[43,[24]]]],[[106,106],[[43,[24]]]],[[107,107],[[43,[24]]]],[[108,108],[[43,[24]]]],[[109,109],[[43,[24]]]],[[110,110],[[43,[24]]]],[[111,111],[[43,[24]]]],[[112,112],[[43,[24]]]],[[113,113],[[43,[24]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[43,[-2]]],[],[]],[-1,[[43,[-2]]],[],[]],[-1,[[43,[-2]]],[],[]],[-1,[[43,[-2]]],[],[]],[-1,[[43,[-2]]],[],[]],[-1,[[43,[-2]]],[],[]],[-1,[[43,[-2]]],[],[]],[-1,[[43,[-2]]],[],[]],[-1,[[43,[-2]]],[],[]],[-1,[[43,[-2]]],[],[]],[-1,[[43,[-2]]],[],[]],[-1,[[43,[-2]]],[],[]],[-1,[[43,[-2]]],[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,55,[]],[-1,55,[]],[-1,55,[]],[-1,55,[]],[-1,55,[]],[-1,55,[]],[-1,55,[]],[-1,55,[]],[-1,55,[]],[-1,55,[]],[-1,55,[]],[-1,55,[]],[-1,55,[]],0,0,0,0,0,0,[[114,9,50,14,115,82,116,115,16,50,50,117,117],118],[[114,9,118],118],[[114,9,118,117,117],50],[[114,9,118],50],[[114,9,118],23],[[114,9,118],50],[[114,9,118,50],117],[[114,9,118],117],[[114,9,118],33],[[114,9,118],16],[[114,9,118,33],119],[[114,9,118],117],[[114,9,118],33],[[114,9,118,117],23],[[114,9,118],117],[[114,9,118],117],[[114,9,118],117],[[114,9,118,117,117],23],[[114,9,118,33],120],[[114,9,118],117],[[114,9,118,117],14],[[114,9,118],50],[[114,9,118],50],[[114,9,118],14],[[114,9,118,33],23],[[114,9,118,117],50],[[114,9,118,33],23],[[114,9,118,117],50],[[114,9,118,117],50],[[114,9,118,117],50],[[114,9,118],121],[[114,9,118],121],[[114,9,118],121],[[114,9,118],121],[[114,9,118],121],[[114,9,118,50],121],[[114,9,118],121],[[114,9,118],121],[[114,9,50,14,115,82,116,115,16],118],[[114,9,14,115,82,116,16],118],[[114,9,118,50],50],[[114,9,118],50],[[114,9,118],121],[[114,9,118,33],50],[[114,9,118,33,33],50],[[114,9,118,117,117,33],50],0,0,0,0,0,0,0,[[114,9,14,50,14],17],[[114,9,14,50,14],17],[[114,9,59,59,59,50],17],[[114,9,17,17,17,16],17],[[114,9,14,50,14],17],[[114,9,14,50,14],17],[[114,9,14,14,50,122],17],[[114,9,14,50,123],17],[[114,9,17,33,50,50],50],[[114,9,17,33,50,50,50],50],[[114,9,17,124,117,50,16],50],[[114,9,17,50],50],[[114,9,17,121],50],[[114,9,125],50],[[114,9,17,117,50],17],[[114,9,17,126],50],[[114,9,17,33],50],[[114,9,14,121],17],[[114,9,14,16,116],121],[[114,9,50,50],50],[[114,9,56,56],121],[[114,9,16,16],121],[[114,9,16,16,116],121],[[114,9,50,50,127],50],[[114,9,14,14],50],[[114,9,17,16,124,50],50],[[114,9,17,124,16],50],[[114,9,14,14],50],[[114,9,14,16,50],17],[[114,9,17,116],50],[[9,17],50],[[114,9,17],50],[[114,9,14,50,50],17],[[9,17],50],[[114,9,17,16,50,50,50,17],17],[[114,9,50,50,117,117,117,117],121],[[114,9,14,17,14,128],17],[[114,9,14,17,17,14],17],[[114,9,17,128],50],[[114,9,117,117,50],50],[[114,9,33,33,1],50],[[114,9,129,129,1],50],[[114,9,14,17,50,14],17],[[114,9,17,50],17],[[114,9,14,14],17],[[114,9,17,128,50],50],[[114,9,17,50],14],[[114,9,17,17],50],[[114,9,17],17],[[114,9,14,14],50],[[114,9,14,14],50],[[114,9,14,17],50],[[114,9,17,17,50],17],[[114,9,17,17,50],17],[[114,9,14],117],[[114,9,50,117,130],23],[[114,9,14,50,50,14],17],[[114,9,14,50,50,14],17],[[114,9,131,132],133],[[114,9,133,131,132],23],[[114,9,14],23],[[114,9,17,16],50],[[114,9,17,16],50],[[114,9,17,16],50],[[114,9,17,16],50],[[114,9,17,16],16],[[114,9,17],16],[[114,9,50],16],[[114,9,17],16],[[114,9,16],16],[[114,9,16,33],16],[[114,9,50],16],[[114,9,14,50,50,50],17],[[114,9,17,17,50],50],[[114,9,17,50],17],[[114,9,33,117,14,16,82,116,14],17],[[114,9,33],50],[[114,9,17],50],[[114,9,50,117,16,50],17],[[114,9,17],17],[[114,9,17],17],[[114,9,50,50],134],[[114,9,16,16],134],[[114,9,14,33],50],[[114,9,17],17],[[114,9,14,17],23],[[114,9,14,17],50],[[114,9,14,82],17],[[114,9,17,124],50],[[114,9,17,16,50,50,50,17],17],[[114,9,14,16,50],17],[[114,9,17,16,17],17],[[114,9,17,16,117,117],17],[[114,9,50,50,50],17],[[114,9,50,50,16,33],17],[[114,9,135,16,117,33],17],[[114,9,17],17],[[114,9,17,16,117],17],[[114,9,17,16],17],[[114,9,33,117,16,117,33],17],[[114,9,17],17],[[114,9,17,16,121,16,50,117,14,17],50],[[114,9,16,50],136],[[114,9],50],[[114,9,14,16,50],17],[[114,9],137],[[114,9],137],[[114,9],17],[[114,9,17,59],59],[[114,9,14,117],124],[[114,9,14],50],[[114,9,138],23],[[114,9,17,17],17],[[114,9,50,117],17],[[114,9,17,139],50],[[114,9,17,117,50],50],[[114,9,33,16],23],[[114,9,33,16],23],[[114,9,17,50],17],[[114,9,17],17],[[114,9,17,50],17],[[114,9,14,17],17],[[114,9,14,17,50,14],17],[[114,9,140],23],[[114,9,140,14,50],23],[[114,9,17,17],17],[[114,9,17,17,14],17],[[114,9,14,50,14],17],[[114,9,14,50,50,14],17],[[114,9,14,50,14],17],[[114,9,14],16],[[114,9,14,14],50],[[114,9,50,50],50],[[114,9,117,50],117],[[114,9,141,117,50,14],17],[[114,9,56,50,117,50,117,124,50,50,17],17],[[114,9,14,82],17],[[114,9,17],17],[[114,9,56,16,50,117,117,124,50,17],17],[[114,9,14,82,16,50],17],[[114,9,14,139,82],17],[[114,9,14],17],[[114,9,17,50],50],[[114,9,14],33],[[114,9,17,82],50],[[114,9,17,14],50],[[114,9,117,50],117],[[114,9,14,14,50,122],50],[[114,9,14,50,50,14],17],[[114,9,16,16],16],[[114,9,14,50,14],17],[[114,9,14,17,17],17],[[114,9,14,17,17,128],17],[[114,9,17],50],[[114,9,17],117],[[114,9,14,82],17],[[114,9,16,50,127],50],[[114,9,16,50,136],50],[[114,9,16],50],[[114,9,14,121],23],[[114,9,125],50],[[114,9,14,17,50],17],[[114,9,14,17],17],[[114,9,14,139,50,82],17],[[114,9,14],50],[[114,9,117,14,117,16],16],[[114,9,14],17],[[114,9,14,50,14],17],[[114,9,124,16,17],17],[[114,9,17,124],23],[[114,9,17],17],[[114,9,50,14],127],[[114,9,14,17,142,17],17],[[114,9,17,124],50],[[114,9,17,122],50],[[114,9,14,17],50],[[114,9,17],23],[[114,9,14,16,50,17],50],[[114,9,17],50],[[114,9,17,50],23],[[114,9,14,14],50],[[114,9,14,14],50],[[114,9,17],117],[[114,9,14,50,123],50],[[114,9,17,123],50],[[114,9,14],17],[[114,9,14,50,50,14,50],17],[[114,9,14,50,50,14],17],[[114,9,14,50,50],17],[[114,9,14,17,50,14,128],17],[[114,9,131,143],133],[[114,9,144,131,143],23],[[114,9,14,135,33,33],50],[[114,9,14],17],[[114,9,14,82],17],[[114,9,14,50,50,50,50,14],17],[[114,9,14,139],17],0,[[114,9,50],17],[[114,9,50,50],50],[[114,9,14,50],23],[[114,9,50],50],[[114,9,14,16,56],17],[[114,9,17,17,17],17],[[114,9,14],50],[[114,9,14],33],[[114,9,50,117,16,50],17],0,0,0,0,0,0,0,0,[[114,9,124],23],[[114,9,1],124],[[114,9,1,1],124],[[114,9,124,1],124],[[114,9,145,124,124],145],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[114,9],124],[[114,9,50],23],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-1,[]],[-1,-1,[]],[-1,-2,[],[]],[-1,-2,[],[]],[[114,9,146],56],[-1,-2,[],[]],[-1,-2,[],[]],[-1,32,[]],[-1,32,[]],[-1,[[43,[-2]]],[],[]],[-1,[[43,[-2]]],[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,55,[]],[-1,55,[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,[14,14],[16,16],[147,147],[138,138],[148,148],[139,139],[126,126],[149,149],[150,150],[118,118],[141,141],[125,125],[151,151],[140,140],[152,152],[153,153],[154,154],0,[[-1,-2],23,[],[]],[[-1,-2],23,[],[]],[[-1,-2],23,[],[]],[[-1,-2],23,[],[]],[[-1,-2],23,[],[]],[[-1,-2],23,[],[]],[[-1,-2],23,[],[]],[[-1,-2],23,[],[]],[[-1,-2],23,[],[]],[[-1,-2],23,[],[]],[[-1,-2],23,[],[]],[[-1,-2],23,[],[]],[[-1,-2],23,[],[]],[[-1,-2],23,[],[]],[[-1,-2],23,[],[]],[[-1,-2],23,[],[]],[[-1,-2],23,[],[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[118,34],38],0,[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[43,[-2]]],[],[]],[-1,[[43,[-2]]],[],[]],[-1,[[43,[-2]]],[],[]],[-1,[[43,[-2]]],[],[]],[-1,[[43,[-2]]],[],[]],[-1,[[43,[-2]]],[],[]],[-1,[[43,[-2]]],[],[]],[-1,[[43,[-2]]],[],[]],[-1,[[43,[-2]]],[],[]],[-1,[[43,[-2]]],[],[]],[-1,[[43,[-2]]],[],[]],[-1,[[43,[-2]]],[],[]],[-1,[[43,[-2]]],[],[]],[-1,[[43,[-2]]],[],[]],[-1,[[43,[-2]]],[],[]],[-1,[[43,[-2]]],[],[]],[-1,[[43,[-2]]],[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],0,0,[-1,55,[]],[-1,55,[]],[-1,55,[]],[-1,55,[]],[-1,55,[]],[-1,55,[]],[-1,55,[]],[-1,55,[]],[-1,55,[]],[-1,55,[]],[-1,55,[]],[-1,55,[]],[-1,55,[]],[-1,55,[]],[-1,55,[]],[-1,55,[]],[-1,55,[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[155,155],[156,156],[157,157],[82,82],[127,127],[123,123],[142,142],[131,131],[158,158],[122,122],[116,116],[128,128],[132,132],[143,143],[130,130],[159,159],[160,160],[161,161],[[-1,-2],23,[],[]],[[-1,-2],23,[],[]],[[-1,-2],23,[],[]],[[-1,-2],23,[],[]],[[-1,-2],23,[],[]],[[-1,-2],23,[],[]],[[-1,-2],23,[],[]],[[-1,-2],23,[],[]],[[-1,-2],23,[],[]],[[-1,-2],23,[],[]],[[-1,-2],23,[],[]],[[-1,-2],23,[],[]],[[-1,-2],23,[],[]],[[-1,-2],23,[],[]],[[-1,-2],23,[],[]],[[-1,-2],23,[],[]],[[-1,-2],23,[],[]],[[-1,-2],23,[],[]],[[158,158],24],0,0,[[82,82],32],[[127,127],32],[[123,123],32],[[142,142],32],[[131,131],32],[[158,158],32],[[122,122],32],[[116,116],32],[[128,128],32],[[161,161],32],[[155,34],38],[[156,34],38],[[157,34],38],[[82,34],38],[[127,34],38],[[123,34],38],[[142,34],38],[[131,34],38],[[158,34],38],[[122,34],38],[[116,34],38],[[132,34],38],[[143,34],38],[[130,34],38],[[159,34],38],[[160,34],38],[[161,34],38],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[82,-1],23,45],[[127,-1],23,45],[[123,-1],23,45],[[142,-1],23,45],[[131,-1],23,45],[[158,-1],23,45],[[122,-1],23,45],[[116,-1],23,45],[[128,-1],23,45],[[161,-1],23,45],0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[158,158],[[43,[24]]]],0,0,0,0,0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[43,[-2]]],[],[]],[-1,[[43,[-2]]],[],[]],[-1,[[43,[-2]]],[],[]],[-1,[[43,[-2]]],[],[]],[-1,[[43,[-2]]],[],[]],[-1,[[43,[-2]]],[],[]],[-1,[[43,[-2]]],[],[]],[-1,[[43,[-2]]],[],[]],[-1,[[43,[-2]]],[],[]],[-1,[[43,[-2]]],[],[]],[-1,[[43,[-2]]],[],[]],[-1,[[43,[-2]]],[],[]],[-1,[[43,[-2]]],[],[]],[-1,[[43,[-2]]],[],[]],[-1,[[43,[-2]]],[],[]],[-1,[[43,[-2]]],[],[]],[-1,[[43,[-2]]],[],[]],[-1,[[43,[-2]]],[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,55,[]],[-1,55,[]],[-1,55,[]],[-1,55,[]],[-1,55,[]],[-1,55,[]],[-1,55,[]],[-1,55,[]],[-1,55,[]],[-1,55,[]],[-1,55,[]],[-1,55,[]],[-1,55,[]],[-1,55,[]],[-1,55,[]],[-1,55,[]],[-1,55,[]],[-1,55,[]],0,0,0,0,0,[[162,9,33,117,117,124],23],[[162,9,33,117,117,124],23],[[162,9,150,116,14,17,16],50],[[162,9,33,117,117,124],23],[[162,9,33,117,117,124],23],[[162,9,33,117,117,124],23],[[162,9,33,117,117,124],23],[[162,9,163,124,33,50,50,50,50,33,33,50],17],[[162,9,163,124,33,50,50,50,50,33,33,50,33],17],[[162,9,150,124,33,50,50,50,50,33,33,50,33,33],50],[[162,9,33,117,117,124],23],[[162,9,33,117,117,124],23],[[162,9,150,17,17,14],50],[[162,9,33,50,50,17],50],[[162,9,33,117,117,124],23],[[162,9,33,117,117,124],23],[[162,9,33,117,117,124],23],[[162,9,33,117,117,124],23],[[162,9,33,117,117,124],23],[[162,9,150,16,163,16,124],50],[[162,9,150,50,163,50,124],50],[[162,9,150,163,50,163],50],[[162,9,124,1],50],[[162,9,150,116,14,16],50],[[162,9,50,17,50],50],[[162,9],23],[[162,9,33,117,117,124],23],[[162,9,33,117,117,124],23],[[162,9,33,117,117,124],23],[[162,9,33,117,117,124],23],[[162,9,33,117,117,124],23],[[162,9,33,117,117,124],23],[[162,9,33,117,117,124],23],[[162,9,33,117,117,124],23],[[162,9,33,117,117,124],23],[[162,9,33,117,117,124],23],[[162,9,33,117,117,124],23],[[162,9,33,117,117,124],23],[[162,9,33,117,117,124],23],[[162,9],50],[[162,9,33,117,117,124],23],[[162,9,50,17,50,50],50],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-1,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,32,[]],[-1,[[43,[-2]]],[],[]],[-1,-2,[],[]],[-1,[[36,[-2]]],[],[]],[-1,[[36,[-2]]],[],[]],[-1,55,[]]],"c":[131,190,191,279,285,287],"p":[[1,"usize"],[1,"array"],[5,"Dim",2313],[1,"slice"],[5,"IxDynImpl",2314],[5,"PyArrayDescr",0],[10,"PyArrayDescrMethods",0],[5,"FromVecError",0],[5,"Python",2315],[8,"PyObject",2316],[5,"NotContiguousError",0],[6,"BorrowError",0],[10,"PyUntypedArrayMethods",0],[5,"PyArrayObject",1245],[5,"PyUntypedArray",0],[5,"PyArray_Descr",1245],[5,"PyObject",2317],[5,"PyAny",2318],[5,"Bound",2316],[1,"u8"],[5,"PyFixedString",0],[5,"PyFixedUnicode",0],[1,"tuple"],[6,"Ordering",2319],[5,"PyArrayLike",0],[10,"Element",0],[10,"Dimension",2320],[5,"PyArray",376],[8,"PyResult",2321],[1,"str"],[8,"IxDyn",0],[1,"bool"],[8,"c_char",2322],[5,"Formatter",2323],[5,"Error",2323],[6,"Result",2324],[5,"TypeMustMatch",0],[8,"Result",2323],[5,"AllowTypeChange",0],[10,"Debug",2323],[8,"Py_UCS1",2325],[8,"Py_UCS4",2325],[6,"Option",2326],[5,"PyErr",2321],[10,"Hasher",2327],[5,"Py",2316],[5,"Vec",2328],[10,"ToPyObject",2329],[10,"Sized",2330],[8,"c_int",2322],[1,"isize"],[5,"String",2331],[5,"PyDowncastError",2321],[10,"Into",2332],[5,"TypeId",2333],[5,"PyTypeObject",2334],[5,"PyType",2335],[8,"Ix1",0],[1,"f64"],[10,"AsPrimitive",2336],[8,"ArrayView",2337],[8,"ArrayViewMut",2337],[8,"RawArrayView",2337],[8,"RawArrayViewMut",2337],[10,"PyArrayMethods",376],[5,"ArrayBase",2337],[17,"Elem"],[10,"Data",2338],[17,"Item"],[10,"IntoIterator",2339],[8,"Array",2337],[8,"Ix2",0],[8,"Ix3",0],[17,"Dim"],[10,"NpyIndex",528],[5,"PyModule",2340],[8,"Ix0",2341],[10,"Copy",2330],[10,"IntoDimension",2342],[5,"PyReadonlyArray",462],[5,"PyReadwriteArray",462],[6,"NPY_ORDER",1777],[8,"MatrixView",2343],[10,"Scalar",2344],[10,"Dim",2345],[8,"MatrixViewMut",2343],[5,"Dyn",2345],[8,"DMatrixView",2346],[8,"DMatrixViewMut",2346],[10,"IntoPyArray",528],[10,"ToPyArray",528],[5,"Datetime",538],[10,"Clone",2347],[10,"Unit",538],[5,"Timedelta",538],[10,"Ord",2319],[10,"PartialEq",2319],[1,"i64"],[10,"Hash",2327],[10,"PartialOrd",2319],[5,"Years",586],[5,"Months",586],[5,"Weeks",586],[5,"Days",586],[5,"Hours",586],[5,"Minutes",586],[5,"Seconds",586],[5,"Milliseconds",586],[5,"Microseconds",586],[5,"Nanoseconds",586],[5,"Picoseconds",586],[5,"Femtoseconds",586],[5,"Attoseconds",586],[5,"PyArrayAPI",851],[8,"npy_uint32",1777],[6,"NPY_CASTING",1777],[8,"npy_intp",1777],[5,"NpyIter",1245],[8,"NpyIter_GetMultiIndexFunc",1245],[8,"NpyIter_IterNextFunc",1245],[8,"npy_bool",1777],[6,"NPY_SELECTKIND",1777],[6,"NPY_SORTKIND",1777],[8,"c_void",2322],[5,"PyArrayMultiIterObject",1245],[5,"PyArray_Chunk",1245],[6,"NPY_SCALARKIND",1777],[6,"NPY_CLIPMODE",1777],[8,"npy_ucs4",1777],[5,"npy_stride_sort_item",1777],[6,"NPY_DATETIMEUNIT",1777],[5,"npy_datetimestruct",1777],[8,"npy_datetime",1777],[8,"c_uchar",2322],[6,"FILE",2348],[8,"PyArray_VectorUnaryFunc",1245],[8,"c_uint",2322],[5,"PyArray_ArrFuncs",1245],[5,"PyArray_Dims",1245],[5,"PyArrayMapIterObject",1245],[5,"PyArrayIterObject",1245],[6,"NPY_SEARCHSIDE",1777],[5,"npy_timedeltastruct",1777],[8,"npy_timedelta",1777],[8,"PyDataMem_EventHookFunc",1245],[6,"NpyTypes",851],[5,"PyArray_ArrayDescr",1245],[5,"PyArrayFlagsObject",1245],[5,"PyArrayInterface",1245],[5,"PyUFuncObject",1245],[5,"PyArrayNeighborhoodIterObject",1245],[5,"NpyAuxData",1245],[5,"PyArray_DatetimeMetaData",1245],[5,"PyArray_DatetimeDTypeMetaData",1245],[5,"npy_cdouble",1777],[5,"npy_cfloat",1777],[5,"npy_clongdouble",1777],[6,"NPY_TYPES",1777],[6,"NPY_TYPECHAR",1777],[6,"NPY_TYPEKINDCHAR",1777],[6,"NPY_BYTEORDER_CHAR",1777],[5,"PyUFuncAPI",2258],[8,"PyUFuncGenericFunction",1245],[8,"Complex32",0],[8,"Complex64",0],[8,"PyArray_GetItemFunc",1245],[8,"PyArray_SetItemFunc",1245],[8,"PyArray_CopySwapNFunc",1245],[8,"PyArray_CopySwapFunc",1245],[8,"PyArray_NonzeroFunc",1245],[8,"PyArray_CompareFunc",1245],[8,"PyArray_ArgFunc",1245],[8,"PyArray_DotFunc",1245],[8,"PyArray_ScanFunc",1245],[8,"PyArray_FromStrFunc",1245],[8,"PyArray_FillFunc",1245],[8,"PyArray_SortFunc",1245],[8,"PyArray_ArgSortFunc",1245],[8,"PyArray_PartitionFunc",1245],[8,"PyArray_ArgPartitionFunc",1245],[8,"PyArray_FillWithScalarFunc",1245],[8,"PyArray_ScalarKindFunc",1245],[8,"PyArray_FastClipFunc",1245],[8,"PyArray_FastPutmaskFunc",1245],[8,"PyArray_FastTakeFunc",1245],[8,"PyUFunc_MaskedStridedInnerLoopFunc",1245],[8,"PyUFunc_TypeResolutionFunc",1245],[8,"PyUFunc_LegacyInnerLoopSelectionFunc",1245],[8,"PyUFunc_MaskedInnerLoopSelectionFunc",1245],[8,"npy_iter_get_dataptr_t",1245],[8,"NpyAuxData_FreeFunc",1245],[8,"NpyAuxData_CloneFunc",1245],[8,"npy_complex128",1777],[8,"npy_complex64",1777],[8,"npy_complex256",1777]],"b":[[145,"impl-Debug-for-PyArrayDescr"],[146,"impl-Display-for-PyArrayDescr"],[147,"impl-Display-for-PyUntypedArray"],[148,"impl-Debug-for-PyUntypedArray"],[152,"impl-Debug-for-FromVecError"],[153,"impl-Display-for-FromVecError"],[154,"impl-Display-for-NotContiguousError"],[155,"impl-Debug-for-NotContiguousError"],[156,"impl-Display-for-BorrowError"],[157,"impl-Debug-for-BorrowError"],[158,"impl-Debug-for-PyFixedString%3CN%3E"],[159,"impl-Display-for-PyFixedString%3CN%3E"],[160,"impl-Display-for-PyFixedUnicode%3CN%3E"],[161,"impl-Debug-for-PyFixedUnicode%3CN%3E"],[226,"impl-IntoPy%3CPy%3CPyUntypedArray%3E%3E-for-%26PyUntypedArray"],[227,"impl-IntoPy%3CPy%3CPyAny%3E%3E-for-PyUntypedArray"],[406,"impl-Debug-for-PyArray%3CT,+D%3E"],[407,"impl-Display-for-PyArray%3CT,+D%3E"],[427,"impl-IntoPy%3CPy%3CPyAny%3E%3E-for-PyArray%3CT,+D%3E"],[428,"impl-IntoPy%3CPy%3CPyArray%3CT,+D%3E%3E%3E-for-%26PyArray%3CT,+D%3E"],[482,"impl-PyReadonlyArray%3C\'py,+N,+Dim%3C%5Busize;+2%5D%3E%3E"],[483,"impl-PyReadonlyArray%3C\'py,+N,+Dim%3C%5Busize;+1%5D%3E%3E"],[484,"impl-PyReadwriteArray%3C\'py,+N,+Dim%3C%5Busize;+2%5D%3E%3E"],[485,"impl-PyReadwriteArray%3C\'py,+N,+Dim%3C%5Busize;+1%5D%3E%3E"]],"a":{"nalgebra":[446,447,482,483,484,485,520,521],"pyarray":[385],"pyarraydescr":[37],"pyuntypedarray":[70]}}]\ ]')); if (typeof exports !== 'undefined') exports.searchIndex = searchIndex; else if (window.initSearch) window.initSearch(searchIndex); diff --git a/src/numpy/array.rs.html b/src/numpy/array.rs.html index 4567989c5..bb3370b45 100644 --- a/src/numpy/array.rs.html +++ b/src/numpy/array.rs.html @@ -1552,7 +1552,7 @@ use crate::borrow::{PyReadonlyArray, PyReadwriteArray}; use crate::cold; use crate::convert::{ArrayExt, IntoPyArray, NpyIndex, ToNpyDims, ToPyArray}; -use crate::dtype::Element; +use crate::dtype::{Element, PyArrayDescrMethods}; use crate::error::{ BorrowError, DimensionalityError, FromVecError, IgnoreError, NotContiguousError, TypeError, DIMENSIONALITY_MISMATCH_ERR, MAX_DIMENSIONALITY_ERR, @@ -1804,9 +1804,9 @@ } // Check if the element type matches `T`. - let src_dtype = arr_gil_ref.dtype(); - let dst_dtype = T::get_dtype(ob.py()); - if !src_dtype.is_equiv_to(dst_dtype) { + let src_dtype = array.dtype(); + let dst_dtype = T::get_dtype_bound(ob.py()); + if !src_dtype.is_equiv_to(&dst_dtype) { return Err(TypeError::new(src_dtype, dst_dtype).into()); } @@ -1880,7 +1880,7 @@ let ptr = PY_ARRAY_API.PyArray_NewFromDescr( py, PY_ARRAY_API.get_type_object(py, npyffi::NpyTypes::PyArray_Type), - T::get_dtype(py).into_dtype_ptr(), + T::get_dtype_bound(py).into_dtype_ptr(), dims.ndim_cint(), dims.as_dims_ptr(), strides as *mut npy_intp, // strides @@ -1906,7 +1906,7 @@ let ptr = PY_ARRAY_API.PyArray_NewFromDescr( py, PY_ARRAY_API.get_type_object(py, npyffi::NpyTypes::PyArray_Type), - T::get_dtype(py).into_dtype_ptr(), + T::get_dtype_bound(py).into_dtype_ptr(), dims.ndim_cint(), dims.as_dims_ptr(), strides as *mut npy_intp, // strides @@ -2026,7 +2026,7 @@ py, dims.ndim_cint(), dims.as_dims_ptr(), - T::get_dtype(py).into_dtype_ptr(), + T::get_dtype_bound(py).into_dtype_ptr(), if is_fortran { -1 } else { 0 }, ); Self::from_owned_ptr(py, ptr) @@ -2841,7 +2841,7 @@ PY_ARRAY_API.PyArray_CastToType( self.py(), self.as_array_ptr(), - U::get_dtype(self.py()).into_dtype_ptr(), + U::get_dtype_bound(self.py()).into_dtype_ptr(), if is_fortran { -1 } else { 0 }, ) }; @@ -2987,7 +2987,7 @@ start.as_(), stop.as_(), step.as_(), - T::get_dtype(py).num(), + T::get_dtype_bound(py).num(), ); Self::from_owned_ptr(py, ptr) } diff --git a/src/numpy/array_like.rs.html b/src/numpy/array_like.rs.html index a99601001..70538d8da 100644 --- a/src/numpy/array_like.rs.html +++ b/src/numpy/array_like.rs.html @@ -365,7 +365,7 @@ let kwargs = if C::VAL { let kwargs = PyDict::new(py); - kwargs.set_item(intern!(py, "dtype"), T::get_dtype(py))?; + kwargs.set_item(intern!(py, "dtype"), T::get_dtype_bound(py))?; Some(kwargs) } else { None diff --git a/src/numpy/datetime.rs.html b/src/numpy/datetime.rs.html index 471c5b782..37f12f51e 100644 --- a/src/numpy/datetime.rs.html +++ b/src/numpy/datetime.rs.html @@ -407,10 +407,10 @@ use std::hash::Hash; use std::marker::PhantomData; -use pyo3::{sync::GILProtected, Py, Python}; +use pyo3::{sync::GILProtected, Bound, Py, Python}; use rustc_hash::FxHashMap; -use crate::dtype::{Element, PyArrayDescr}; +use crate::dtype::{Element, PyArrayDescr, PyArrayDescrMethods}; use crate::npyffi::{PyArray_DatetimeDTypeMetaData, NPY_DATETIMEUNIT, NPY_TYPES}; /// Represents the [datetime units][datetime-units] supported by NumPy @@ -500,7 +500,7 @@ unsafe impl<U: Unit> Element for Datetime<U> { const IS_COPY: bool = true; - fn get_dtype<'py>(py: Python<'py>) -> &'py PyArrayDescr { + fn get_dtype_bound(py: Python<'_>) -> Bound<'_, PyArrayDescr> { static DTYPES: TypeDescriptors = unsafe { TypeDescriptors::new(NPY_TYPES::NPY_DATETIME) }; DTYPES.from_unit(py, U::UNIT) @@ -535,7 +535,7 @@ unsafe impl<U: Unit> Element for Timedelta<U> { const IS_COPY: bool = true; - fn get_dtype<'py>(py: Python<'py>) -> &'py PyArrayDescr { + fn get_dtype_bound(py: Python<'_>) -> Bound<'_, PyArrayDescr> { static DTYPES: TypeDescriptors = unsafe { TypeDescriptors::new(NPY_TYPES::NPY_TIMEDELTA) }; DTYPES.from_unit(py, U::UNIT) @@ -564,7 +564,7 @@ } #[allow(clippy::wrong_self_convention)] - fn from_unit<'py>(&'py self, py: Python<'py>, unit: NPY_DATETIMEUNIT) -> &'py PyArrayDescr { + fn from_unit<'py>(&self, py: Python<'py>, unit: NPY_DATETIMEUNIT) -> Bound<'py, PyArrayDescr> { let mut dtypes = self.dtypes.get(py).borrow_mut(); let dtype = match dtypes.get_or_insert_with(Default::default).entry(unit) { @@ -585,7 +585,7 @@ } }; - dtype.clone().into_ref(py) + dtype.clone().into_bound(py) } } diff --git a/src/numpy/dtype.rs.html b/src/numpy/dtype.rs.html index 4a9b4a4d5..861b313ae 100644 --- a/src/numpy/dtype.rs.html +++ b/src/numpy/dtype.rs.html @@ -693,6 +693,294 @@ 692 693 694 +695 +696 +697 +698 +699 +700 +701 +702 +703 +704 +705 +706 +707 +708 +709 +710 +711 +712 +713 +714 +715 +716 +717 +718 +719 +720 +721 +722 +723 +724 +725 +726 +727 +728 +729 +730 +731 +732 +733 +734 +735 +736 +737 +738 +739 +740 +741 +742 +743 +744 +745 +746 +747 +748 +749 +750 +751 +752 +753 +754 +755 +756 +757 +758 +759 +760 +761 +762 +763 +764 +765 +766 +767 +768 +769 +770 +771 +772 +773 +774 +775 +776 +777 +778 +779 +780 +781 +782 +783 +784 +785 +786 +787 +788 +789 +790 +791 +792 +793 +794 +795 +796 +797 +798 +799 +800 +801 +802 +803 +804 +805 +806 +807 +808 +809 +810 +811 +812 +813 +814 +815 +816 +817 +818 +819 +820 +821 +822 +823 +824 +825 +826 +827 +828 +829 +830 +831 +832 +833 +834 +835 +836 +837 +838 +839 +840 +841 +842 +843 +844 +845 +846 +847 +848 +849 +850 +851 +852 +853 +854 +855 +856 +857 +858 +859 +860 +861 +862 +863 +864 +865 +866 +867 +868 +869 +870 +871 +872 +873 +874 +875 +876 +877 +878 +879 +880 +881 +882 +883 +884 +885 +886 +887 +888 +889 +890 +891 +892 +893 +894 +895 +896 +897 +898 +899 +900 +901 +902 +903 +904 +905 +906 +907 +908 +909 +910 +911 +912 +913 +914 +915 +916 +917 +918 +919 +920 +921 +922 +923 +924 +925 +926 +927 +928 +929 +930 +931 +932 +933 +934 +935 +936 +937 +938 +939 +940 +941 +942 +943 +944 +945 +946 +947 +948 +949 +950 +951 +952 +953 +954 +955 +956 +957 +958 +959 +960 +961 +962 +963 +964 +965 +966 +967 +968 +969 +970 +971 +972 +973 +974 +975 +976 +977 +978 +979 +980 +981 +982
    use std::mem::size_of;
     use std::os::raw::{
         c_char, c_int, c_long, c_longlong, c_short, c_uint, c_ulong, c_ulonglong, c_ushort,
    @@ -707,10 +995,11 @@
         ffi::{self, PyTuple_Size},
         pyobject_native_type_extract, pyobject_native_type_named,
         types::{PyAnyMethods, PyDict, PyDictMethods, PyTuple, PyType},
    -    AsPyPointer, Borrowed, PyAny, PyNativeType, PyObject, PyResult, PyTypeInfo, Python, ToPyObject,
    +    AsPyPointer, Borrowed, Bound, PyAny, PyNativeType, PyObject, PyResult, PyTypeInfo, Python,
    +    ToPyObject,
     };
     #[cfg(feature = "half")]
    -use pyo3::{sync::GILOnceCell, IntoPy, Py};
    +use pyo3::{sync::GILOnceCell, Py};
     
     use crate::npyffi::{
         NpyTypes, PyArray_Descr, NPY_ALIGNED_STRUCT, NPY_BYTEORDER_CHAR, NPY_ITEM_HASOBJECT, NPY_TYPES,
    @@ -763,8 +1052,17 @@
     pyobject_native_type_extract!(PyArrayDescr);
     
     /// Returns the type descriptor ("dtype") for a registered type.
    +#[deprecated(
    +    since = "0.21.0",
    +    note = "This will be replaced by `dtype_bound` in the future."
    +)]
     pub fn dtype<'py, T: Element>(py: Python<'py>) -> &'py PyArrayDescr {
    -    T::get_dtype(py)
    +    T::get_dtype_bound(py).into_gil_ref()
    +}
    +
    +/// Returns the type descriptor ("dtype") for a registered type.
    +pub fn dtype_bound<'py, T: Element>(py: Python<'py>) -> Bound<'py, PyArrayDescr> {
    +    T::get_dtype_bound(py)
     }
     
     impl PyArrayDescr {
    @@ -773,14 +1071,30 @@
         /// Equivalent to invoking the constructor of [`numpy.dtype`][dtype].
         ///
         /// [dtype]: https://numpy.org/doc/stable/reference/generated/numpy.dtype.html
    -    #[inline]
    +    #[deprecated(
    +        since = "0.21.0",
    +        note = "This will be replace by `new_bound` in the future."
    +    )]
         pub fn new<'py, T: ToPyObject + ?Sized>(py: Python<'py>, ob: &T) -> PyResult<&'py Self> {
    -        fn inner<'py>(py: Python<'py>, obj: PyObject) -> PyResult<&'py PyArrayDescr> {
    +        Self::new_bound(py, ob).map(Bound::into_gil_ref)
    +    }
    +    /// Creates a new type descriptor ("dtype") object from an arbitrary object.
    +    ///
    +    /// Equivalent to invoking the constructor of [`numpy.dtype`][dtype].
    +    ///
    +    /// [dtype]: https://numpy.org/doc/stable/reference/generated/numpy.dtype.html
    +    #[inline]
    +    pub fn new_bound<'py, T: ToPyObject + ?Sized>(
    +        py: Python<'py>,
    +        ob: &T,
    +    ) -> PyResult<Bound<'py, Self>> {
    +        fn inner(py: Python<'_>, obj: PyObject) -> PyResult<Bound<'_, PyArrayDescr>> {
                 let mut descr: *mut PyArray_Descr = ptr::null_mut();
                 unsafe {
                     // None is an invalid input here and is not converted to NPY_DEFAULT_TYPE
    -                PY_ARRAY_API.PyArray_DescrConverter2(py, obj.as_ptr(), &mut descr as *mut _);
    -                py.from_owned_ptr_or_err(descr as _)
    +                PY_ARRAY_API.PyArray_DescrConverter2(py, obj.as_ptr(), &mut descr);
    +                Bound::from_owned_ptr_or_err(py, descr.cast())
    +                    .map(|any| any.downcast_into_unchecked())
                 }
             }
     
    @@ -789,48 +1103,63 @@
     
         /// Returns `self` as `*mut PyArray_Descr`.
         pub fn as_dtype_ptr(&self) -> *mut PyArray_Descr {
    -        self.as_ptr() as _
    -    }
    +        self.as_borrowed().as_dtype_ptr()
    +    }
     
         /// Returns `self` as `*mut PyArray_Descr` while increasing the reference count.
         ///
         /// Useful in cases where the descriptor is stolen by the API.
         pub fn into_dtype_ptr(&self) -> *mut PyArray_Descr {
    -        self.into_ptr() as _
    -    }
    +        // TODO: replace with `Borrowed::to_owned` once
    +        // pyo3#3963 makes it into a release
    +        let bound = &*self.as_borrowed();
    +        bound.clone().into_dtype_ptr()
    +    }
     
         /// Shortcut for creating a type descriptor of `object` type.
    +    #[deprecated(
    +        since = "0.21.0",
    +        note = "This will be replaced by `object_bound` in the future."
    +    )]
         pub fn object<'py>(py: Python<'py>) -> &'py Self {
    +        Self::object_bound(py).into_gil_ref()
    +    }
    +
    +    /// Shortcut for creating a type descriptor of `object` type.
    +    pub fn object_bound(py: Python<'_>) -> Bound<'_, Self> {
             Self::from_npy_type(py, NPY_TYPES::NPY_OBJECT)
         }
     
         /// Returns the type descriptor for a registered type.
    +    #[deprecated(
    +        since = "0.21.0",
    +        note = "This will be replaced by `of_bound` in the future."
    +    )]
         pub fn of<'py, T: Element>(py: Python<'py>) -> &'py Self {
    -        T::get_dtype(py)
    +        Self::of_bound::<T>(py).into_gil_ref()
    +    }
    +
    +    /// Returns the type descriptor for a registered type.
    +    pub fn of_bound<'py, T: Element>(py: Python<'py>) -> Bound<'py, Self> {
    +        T::get_dtype_bound(py)
         }
     
         /// Returns true if two type descriptors are equivalent.
         pub fn is_equiv_to(&self, other: &Self) -> bool {
    -        let self_ptr = self.as_dtype_ptr();
    -        let other_ptr = other.as_dtype_ptr();
    -
    -        unsafe {
    -            self_ptr == other_ptr
    -                || PY_ARRAY_API.PyArray_EquivTypes(self.py(), self_ptr, other_ptr) != 0
    -        }
    +        self.as_borrowed().is_equiv_to(&other.as_borrowed())
         }
     
    -    fn from_npy_type<'py>(py: Python<'py>, npy_type: NPY_TYPES) -> &'py Self {
    +    fn from_npy_type<'py>(py: Python<'py>, npy_type: NPY_TYPES) -> Bound<'py, Self> {
             unsafe {
                 let descr = PY_ARRAY_API.PyArray_DescrFromType(py, npy_type as _);
    -            py.from_owned_ptr(descr as _)
    +            Bound::from_owned_ptr(py, descr.cast()).downcast_into_unchecked()
             }
         }
     
    -    pub(crate) fn new_from_npy_type<'py>(py: Python<'py>, npy_type: NPY_TYPES) -> &'py Self {
    +    pub(crate) fn new_from_npy_type<'py>(py: Python<'py>, npy_type: NPY_TYPES) -> Bound<'py, Self> {
             unsafe {
                 let descr = PY_ARRAY_API.PyArray_DescrNewFromType(py, npy_type as _);
    -            py.from_owned_ptr(descr as _)
    +            Bound::from_owned_ptr(py, descr.cast()).downcast_into_unchecked()
             }
         }
     
    @@ -841,8 +1170,7 @@
         /// [arrays-scalars]: https://numpy.org/doc/stable/reference/arrays.scalars.html
         /// [dtype-type]: https://numpy.org/doc/stable/reference/generated/numpy.dtype.type.html
         pub fn typeobj(&self) -> &PyType {
    -        let dtype_type_ptr = unsafe { *self.as_dtype_ptr() }.typeobj;
    -        unsafe { PyType::from_type_ptr(self.py(), dtype_type_ptr) }
    +        self.as_borrowed().typeobj().into_gil_ref()
         }
     
         /// Returns a unique number for each of the 21 different built-in
    @@ -855,7 +1183,7 @@
         /// [enumerated-types]: https://numpy.org/doc/stable/reference/c-api/dtype.html#enumerated-types
         /// [dtype-num]: https://numpy.org/doc/stable/reference/generated/numpy.dtype.num.html
         pub fn num(&self) -> c_int {
    -        unsafe { *self.as_dtype_ptr() }.type_num
    +        self.as_borrowed().num()
         }
     
         /// Returns the element size of this type descriptor.
    @@ -864,6 +1192,201 @@
         ///
         /// [dtype-itemsiize]: https://numpy.org/doc/stable/reference/generated/numpy.dtype.itemsize.html
         pub fn itemsize(&self) -> usize {
    +        self.as_borrowed().itemsize()
    +    }
    +
    +    /// Returns the required alignment (bytes) of this type descriptor according to the compiler.
    +    ///
    +    /// Equivalent to [`numpy.dtype.alignment`][dtype-alignment].
    +    ///
    +    /// [dtype-alignment]: https://numpy.org/doc/stable/reference/generated/numpy.dtype.alignment.html
    +    pub fn alignment(&self) -> usize {
    +        self.as_borrowed().alignment()
    +    }
    +
    +    /// Returns an ASCII character indicating the byte-order of this type descriptor object.
    +    ///
    +    /// All built-in data-type objects have byteorder either `=` or `|`.
    +    ///
    +    /// Equivalent to [`numpy.dtype.byteorder`][dtype-byteorder].
    +    ///
    +    /// [dtype-byteorder]: https://numpy.org/doc/stable/reference/generated/numpy.dtype.byteorder.html
    +    pub fn byteorder(&self) -> u8 {
    +        self.as_borrowed().byteorder()
    +    }
    +
    +    /// Returns a unique ASCII character for each of the 21 different built-in types.
    +    ///
    +    /// Note that structured data types are categorized as `V` (void).
    +    ///
    +    /// Equivalent to [`numpy.dtype.char`][dtype-char].
    +    ///
    +    /// [dtype-char]: https://numpy.org/doc/stable/reference/generated/numpy.dtype.char.html
    +    pub fn char(&self) -> u8 {
    +        self.as_borrowed().char()
    +    }
    +
    +    /// Returns an ASCII character (one of `biufcmMOSUV`) identifying the general kind of data.
    +    ///
    +    /// Note that structured data types are categorized as `V` (void).
    +    ///
    +    /// Equivalent to [`numpy.dtype.kind`][dtype-kind].
    +    ///
    +    /// [dtype-kind]: https://numpy.org/doc/stable/reference/generated/numpy.dtype.kind.html
    +    pub fn kind(&self) -> u8 {
    +        self.as_borrowed().kind()
    +    }
    +
    +    /// Returns bit-flags describing how this type descriptor is to be interpreted.
    +    ///
    +    /// Equivalent to [`numpy.dtype.flags`][dtype-flags].
    +    ///
    +    /// [dtype-flags]: https://numpy.org/doc/stable/reference/generated/numpy.dtype.flags.html
    +    pub fn flags(&self) -> c_char {
    +        self.as_borrowed().flags()
    +    }
    +
    +    /// Returns the number of dimensions if this type descriptor represents a sub-array, and zero otherwise.
    +    ///
    +    /// Equivalent to [`numpy.dtype.ndim`][dtype-ndim].
    +    ///
    +    /// [dtype-ndim]: https://numpy.org/doc/stable/reference/generated/numpy.dtype.ndim.html
    +    pub fn ndim(&self) -> usize {
    +        self.as_borrowed().ndim()
    +    }
    +
    +    /// Returns the type descriptor for the base element of subarrays, regardless of their dimension or shape.
    +    ///
    +    /// If the dtype is not a subarray, returns self.
    +    ///
    +    /// Equivalent to [`numpy.dtype.base`][dtype-base].
    +    ///
    +    /// [dtype-base]: https://numpy.org/doc/stable/reference/generated/numpy.dtype.base.html
    +    pub fn base(&self) -> &PyArrayDescr {
    +        self.as_borrowed().base().into_gil_ref()
    +    }
    +
    +    /// Returns the shape of the sub-array.
    +    ///
    +    /// If the dtype is not a sub-array, an empty vector is returned.
    +    ///
    +    /// Equivalent to [`numpy.dtype.shape`][dtype-shape].
    +    ///
    +    /// [dtype-shape]: https://numpy.org/doc/stable/reference/generated/numpy.dtype.shape.html
    +    pub fn shape(&self) -> Vec<usize> {
    +        self.as_borrowed().shape()
    +    }
    +
    +    /// Returns true if the type descriptor contains any reference-counted objects in any fields or sub-dtypes.
    +    ///
    +    /// Equivalent to [`numpy.dtype.hasobject`][dtype-hasobject].
    +    ///
    +    /// [dtype-hasobject]: https://numpy.org/doc/stable/reference/generated/numpy.dtype.hasobject.html
    +    pub fn has_object(&self) -> bool {
    +        self.as_borrowed().has_object()
    +    }
    +
    +    /// Returns true if the type descriptor is a struct which maintains field alignment.
    +    ///
    +    /// This flag is sticky, so when combining multiple structs together, it is preserved
    +    /// and produces new dtypes which are also aligned.
    +    ///
    +    /// Equivalent to [`numpy.dtype.isalignedstruct`][dtype-isalignedstruct].
    +    ///
    +    /// [dtype-isalignedstruct]: https://numpy.org/doc/stable/reference/generated/numpy.dtype.isalignedstruct.html
    +    pub fn is_aligned_struct(&self) -> bool {
    +        self.as_borrowed().is_aligned_struct()
    +    }
    +
    +    /// Returns true if the type descriptor is a sub-array.
    +    pub fn has_subarray(&self) -> bool {
    +        self.as_borrowed().has_subarray()
    +    }
    +
    +    /// Returns true if the type descriptor is a structured type.
    +    pub fn has_fields(&self) -> bool {
    +        self.as_borrowed().has_fields()
    +    }
    +
    +    /// Returns true if type descriptor byteorder is native, or `None` if not applicable.
    +    pub fn is_native_byteorder(&self) -> Option<bool> {
    +        self.as_borrowed().is_native_byteorder()
    +    }
    +
    +    /// Returns an ordered list of field names, or `None` if there are no fields.
    +    ///
    +    /// The names are ordered according to increasing byte offset.
    +    ///
    +    /// Equivalent to [`numpy.dtype.names`][dtype-names].
    +    ///
    +    /// [dtype-names]: https://numpy.org/doc/stable/reference/generated/numpy.dtype.names.html
    +    pub fn names(&self) -> Option<Vec<&str>> {
    +        if !self.has_fields() {
    +            return None;
    +        }
    +        let names = unsafe { Borrowed::from_ptr(self.py(), (*self.as_dtype_ptr()).names) };
    +        names.extract().ok()
    +    }
    +
    +    /// Returns the type descriptor and offset of the field with the given name.
    +    ///
    +    /// This method will return an error if this type descriptor is not structured,
    +    /// or if it does not contain a field with a given name.
    +    ///
    +    /// The list of all names can be found via [`PyArrayDescr::names`].
    +    ///
    +    /// Equivalent to retrieving a single item from [`numpy.dtype.fields`][dtype-fields].
    +    ///
    +    /// [dtype-fields]: https://numpy.org/doc/stable/reference/generated/numpy.dtype.fields.html
    +    pub fn get_field(&self, name: &str) -> PyResult<(&PyArrayDescr, usize)> {
    +        self.as_borrowed()
    +            .get_field(name)
    +            .map(|(descr, n)| (descr.into_gil_ref(), n))
    +    }
    +}
    +
    +/// Implementation of functionality for [`PyArrayDescr`].
    +#[doc(alias = "PyArrayDescr")]
    +pub trait PyArrayDescrMethods<'py>: sealed::Sealed {
    +    /// Returns `self` as `*mut PyArray_Descr`.
    +    fn as_dtype_ptr(&self) -> *mut PyArray_Descr;
    +
    +    /// Returns `self` as `*mut PyArray_Descr` while increasing the reference count.
    +    ///
    +    /// Useful in cases where the descriptor is stolen by the API.
    +    fn into_dtype_ptr(self) -> *mut PyArray_Descr;
    +
    +    /// Returns true if two type descriptors are equivalent.
    +    fn is_equiv_to(&self, other: &Self) -> bool;
    +
    +    /// Returns the [array scalar][arrays-scalars] corresponding to this type descriptor.
    +    ///
    +    /// Equivalent to [`numpy.dtype.type`][dtype-type].
    +    ///
    +    /// [arrays-scalars]: https://numpy.org/doc/stable/reference/arrays.scalars.html
    +    /// [dtype-type]: https://numpy.org/doc/stable/reference/generated/numpy.dtype.type.html
    +    fn typeobj(&self) -> Bound<'py, PyType>;
    +
    +    /// Returns a unique number for each of the 21 different built-in
    +    /// [enumerated types][enumerated-types].
    +    ///
    +    /// These are roughly ordered from least-to-most precision.
    +    ///
    +    /// Equivalent to [`numpy.dtype.num`][dtype-num].
    +    ///
    +    /// [enumerated-types]: https://numpy.org/doc/stable/reference/c-api/dtype.html#enumerated-types
    +    /// [dtype-num]: https://numpy.org/doc/stable/reference/generated/numpy.dtype.num.html
    +    fn num(&self) -> c_int {
    +        unsafe { *self.as_dtype_ptr() }.type_num
    +    }
    +
    +    /// Returns the element size of this type descriptor.
    +    ///
    +    /// Equivalent to [`numpy.dtype.itemsize`][dtype-itemsize].
    +    ///
    +    /// [dtype-itemsiize]: https://numpy.org/doc/stable/reference/generated/numpy.dtype.itemsize.html
    +
    +    fn itemsize(&self) -> usize {
             unsafe { *self.as_dtype_ptr() }.elsize.max(0) as _
         }
     
    @@ -872,7 +1395,7 @@
         /// Equivalent to [`numpy.dtype.alignment`][dtype-alignment].
         ///
         /// [dtype-alignment]: https://numpy.org/doc/stable/reference/generated/numpy.dtype.alignment.html
    -    pub fn alignment(&self) -> usize {
    +    fn alignment(&self) -> usize {
             unsafe { *self.as_dtype_ptr() }.alignment.max(0) as _
         }
     
    @@ -883,7 +1406,7 @@
         /// Equivalent to [`numpy.dtype.byteorder`][dtype-byteorder].
         ///
         /// [dtype-byteorder]: https://numpy.org/doc/stable/reference/generated/numpy.dtype.byteorder.html
    -    pub fn byteorder(&self) -> u8 {
    +    fn byteorder(&self) -> u8 {
             unsafe { *self.as_dtype_ptr() }.byteorder.max(0) as _
         }
     
    @@ -894,7 +1417,7 @@
         /// Equivalent to [`numpy.dtype.char`][dtype-char].
         ///
         /// [dtype-char]: https://numpy.org/doc/stable/reference/generated/numpy.dtype.char.html
    -    pub fn char(&self) -> u8 {
    +    fn char(&self) -> u8 {
             unsafe { *self.as_dtype_ptr() }.type_.max(0) as _
         }
     
    @@ -905,7 +1428,7 @@
         /// Equivalent to [`numpy.dtype.kind`][dtype-kind].
         ///
         /// [dtype-kind]: https://numpy.org/doc/stable/reference/generated/numpy.dtype.kind.html
    -    pub fn kind(&self) -> u8 {
    +    fn kind(&self) -> u8 {
             unsafe { *self.as_dtype_ptr() }.kind.max(0) as _
         }
     
    @@ -914,7 +1437,7 @@
         /// Equivalent to [`numpy.dtype.flags`][dtype-flags].
         ///
         /// [dtype-flags]: https://numpy.org/doc/stable/reference/generated/numpy.dtype.flags.html
    -    pub fn flags(&self) -> c_char {
    +    fn flags(&self) -> c_char {
             unsafe { *self.as_dtype_ptr() }.flags
         }
     
    @@ -923,7 +1446,7 @@
         /// Equivalent to [`numpy.dtype.ndim`][dtype-ndim].
         ///
         /// [dtype-ndim]: https://numpy.org/doc/stable/reference/generated/numpy.dtype.ndim.html
    -    pub fn ndim(&self) -> usize {
    +    fn ndim(&self) -> usize {
             if !self.has_subarray() {
                 return 0;
             }
    @@ -937,17 +1460,7 @@
         /// Equivalent to [`numpy.dtype.base`][dtype-base].
         ///
         /// [dtype-base]: https://numpy.org/doc/stable/reference/generated/numpy.dtype.base.html
    -    pub fn base(&self) -> &PyArrayDescr {
    -        if !self.has_subarray() {
    -            self
    -        } else {
    -            #[allow(deprecated)]
    -            unsafe {
    -                use pyo3::FromPyPointer;
    -                Self::from_borrowed_ptr(self.py(), (*(*self.as_dtype_ptr()).subarray).base as _)
    -            }
    -        }
    -    }
    +    fn base(&self) -> Bound<'py, PyArrayDescr>;
     
         /// Returns the shape of the sub-array.
         ///
    @@ -956,23 +1469,14 @@
         /// Equivalent to [`numpy.dtype.shape`][dtype-shape].
         ///
         /// [dtype-shape]: https://numpy.org/doc/stable/reference/generated/numpy.dtype.shape.html
    -    pub fn shape(&self) -> Vec<usize> {
    -        if !self.has_subarray() {
    -            Vec::new()
    -        } else {
    -            // NumPy guarantees that shape is a tuple of non-negative integers so this should never panic.
    -            unsafe { Borrowed::from_ptr(self.py(), (*(*self.as_dtype_ptr()).subarray).shape) }
    -                .extract()
    -                .unwrap()
    -        }
    -    }
    +    fn shape(&self) -> Vec<usize>;
     
         /// Returns true if the type descriptor contains any reference-counted objects in any fields or sub-dtypes.
         ///
         /// Equivalent to [`numpy.dtype.hasobject`][dtype-hasobject].
         ///
         /// [dtype-hasobject]: https://numpy.org/doc/stable/reference/generated/numpy.dtype.hasobject.html
    -    pub fn has_object(&self) -> bool {
    +    fn has_object(&self) -> bool {
             self.flags() & NPY_ITEM_HASOBJECT != 0
         }
     
    @@ -984,24 +1488,24 @@
         /// Equivalent to [`numpy.dtype.isalignedstruct`][dtype-isalignedstruct].
         ///
         /// [dtype-isalignedstruct]: https://numpy.org/doc/stable/reference/generated/numpy.dtype.isalignedstruct.html
    -    pub fn is_aligned_struct(&self) -> bool {
    +    fn is_aligned_struct(&self) -> bool {
             self.flags() & NPY_ALIGNED_STRUCT != 0
         }
     
         /// Returns true if the type descriptor is a sub-array.
    -    pub fn has_subarray(&self) -> bool {
    +    fn has_subarray(&self) -> bool {
             // equivalent to PyDataType_HASSUBARRAY(self)
             unsafe { !(*self.as_dtype_ptr()).subarray.is_null() }
         }
     
         /// Returns true if the type descriptor is a structured type.
    -    pub fn has_fields(&self) -> bool {
    +    fn has_fields(&self) -> bool {
             // equivalent to PyDataType_HASFIELDS(self)
             unsafe { !(*self.as_dtype_ptr()).names.is_null() }
         }
     
         /// Returns true if type descriptor byteorder is native, or `None` if not applicable.
    -    pub fn is_native_byteorder(&self) -> Option<bool> {
    +    fn is_native_byteorder(&self) -> Option<bool> {
             // based on PyArray_ISNBO(self->byteorder)
             match self.byteorder() {
                 b'=' => Some(true),
    @@ -1017,13 +1521,7 @@
         /// Equivalent to [`numpy.dtype.names`][dtype-names].
         ///
         /// [dtype-names]: https://numpy.org/doc/stable/reference/generated/numpy.dtype.names.html
    -    pub fn names(&self) -> Option<Vec<&str>> {
    -        if !self.has_fields() {
    -            return None;
    -        }
    -        let names = unsafe { Borrowed::from_ptr(self.py(), (*self.as_dtype_ptr()).names) };
    -        names.extract().ok()
    -    }
    +    fn names(&self) -> Option<Vec<&str>>;
     
         /// Returns the type descriptor and offset of the field with the given name.
         ///
    @@ -1035,7 +1533,64 @@
         /// Equivalent to retrieving a single item from [`numpy.dtype.fields`][dtype-fields].
         ///
         /// [dtype-fields]: https://numpy.org/doc/stable/reference/generated/numpy.dtype.fields.html
    -    pub fn get_field(&self, name: &str) -> PyResult<(&PyArrayDescr, usize)> {
    +    fn get_field(&self, name: &str) -> PyResult<(Bound<'py, PyArrayDescr>, usize)>;
    +}
    +
    +impl<'py> PyArrayDescrMethods<'py> for Bound<'py, PyArrayDescr> {
    +    fn as_dtype_ptr(&self) -> *mut PyArray_Descr {
    +        self.as_ptr() as _
    +    }
    +
    +    fn into_dtype_ptr(self) -> *mut PyArray_Descr {
    +        self.into_ptr() as _
    +    }
    +
    +    fn is_equiv_to(&self, other: &Self) -> bool {
    +        let self_ptr = self.as_dtype_ptr();
    +        let other_ptr = other.as_dtype_ptr();
    +
    +        unsafe {
    +            self_ptr == other_ptr
    +                || PY_ARRAY_API.PyArray_EquivTypes(self.py(), self_ptr, other_ptr) != 0
    +        }
    +    }
    +
    +    fn typeobj(&self) -> Bound<'py, PyType> {
    +        let dtype_type_ptr = unsafe { *self.as_dtype_ptr() }.typeobj;
    +        unsafe { PyType::from_borrowed_type_ptr(self.py(), dtype_type_ptr) }
    +    }
    +
    +    fn base(&self) -> Bound<'py, PyArrayDescr> {
    +        if !self.has_subarray() {
    +            self.clone()
    +        } else {
    +            unsafe {
    +                Bound::from_borrowed_ptr(self.py(), (*(*self.as_dtype_ptr()).subarray).base.cast())
    +                    .downcast_into_unchecked()
    +            }
    +        }
    +    }
    +
    +    fn shape(&self) -> Vec<usize> {
    +        if !self.has_subarray() {
    +            Vec::new()
    +        } else {
    +            // NumPy guarantees that shape is a tuple of non-negative integers so this should never panic.
    +            unsafe { Borrowed::from_ptr(self.py(), (*(*self.as_dtype_ptr()).subarray).shape) }
    +                .extract()
    +                .unwrap()
    +        }
    +    }
    +
    +    fn names(&self) -> Option<Vec<&str>> {
    +        if !self.has_fields() {
    +            return None;
    +        }
    +        let names = unsafe { Borrowed::from_ptr(self.py(), (*self.as_dtype_ptr()).names) };
    +        names.extract().ok()
    +    }
    +
    +    fn get_field(&self, name: &str) -> PyResult<(Bound<'py, PyArrayDescr>, usize)> {
             if !self.has_fields() {
                 return Err(PyValueError::new_err(
                     "cannot get field information: type descriptor has no fields",
    @@ -1056,10 +1611,18 @@
                 .downcast_into::<PyArrayDescr>()
                 .unwrap();
             let offset = tuple.get_item(1).unwrap().extract().unwrap();
    -        Ok((dtype.into_gil_ref(), offset))
    +        Ok((dtype, offset))
         }
     }
     
    +mod sealed {
    +    use super::PyArrayDescr;
    +
    +    pub trait Sealed {}
    +
    +    impl Sealed for pyo3::Bound<'_, PyArrayDescr> {}
    +}
    +
     /// Represents that a type can be an element of `PyArray`.
     ///
     /// Currently, only integer/float/complex/object types are supported. The [NumPy documentation][enumerated-types]
    @@ -1108,7 +1671,16 @@
         const IS_COPY: bool;
     
         /// Returns the associated type descriptor ("dtype") for the given element type.
    -    fn get_dtype<'py>(py: Python<'py>) -> &'py PyArrayDescr;
    +    #[deprecated(
    +        since = "0.21.0",
    +        note = "This will be replaced by `get_dtype_bound` in the future."
    +    )]
    +    fn get_dtype<'py>(py: Python<'py>) -> &'py PyArrayDescr {
    +        Self::get_dtype_bound(py).into_gil_ref()
    +    }
    +
    +    /// Returns the associated type descriptor ("dtype") for the given element type.
    +    fn get_dtype_bound(py: Python<'_>) -> Bound<'_, PyArrayDescr>;
     }
     
     fn npy_int_type_lookup<T, T0, T1, T2>(npy_types: [NPY_TYPES; 3]) -> NPY_TYPES {
    @@ -1162,7 +1734,7 @@
             unsafe impl Element for $ty {
                 const IS_COPY: bool = true;
     
    -            fn get_dtype<'py>(py: Python<'py>) -> &'py PyArrayDescr {
    +            fn get_dtype_bound(py: Python<'_>) -> Bound<'_, PyArrayDescr> {
                     PyArrayDescr::from_npy_type(py, $npy_type)
                 }
             }
    @@ -1190,15 +1762,15 @@
     unsafe impl Element for bf16 {
         const IS_COPY: bool = true;
     
    -    fn get_dtype<'py>(py: Python<'py>) -> &PyArrayDescr {
    +    fn get_dtype_bound(py: Python<'_>) -> Bound<'_, PyArrayDescr> {
             static DTYPE: GILOnceCell<Py<PyArrayDescr>> = GILOnceCell::new();
     
             DTYPE
                 .get_or_init(py, || {
    -                PyArrayDescr::new(py, "bfloat16").expect("A package which provides a `bfloat16` data type for NumPy is required to use the `half::bf16` element type.").into_py(py)
    +                PyArrayDescr::new_bound(py, "bfloat16").expect("A package which provides a `bfloat16` data type for NumPy is required to use the `half::bf16` element type.").unbind()
                 })
                 .clone()
    -            .into_ref(py)
    +            .into_bound(py)
         }
     }
     
    @@ -1213,8 +1785,8 @@
     unsafe impl Element for PyObject {
         const IS_COPY: bool = false;
     
    -    fn get_dtype<'py>(py: Python<'py>) -> &PyArrayDescr {
    -        PyArrayDescr::object(py)
    +    fn get_dtype_bound(py: Python<'_>) -> Bound<'_, PyArrayDescr> {
    +        PyArrayDescr::object_bound(py)
         }
     }
     
    @@ -1222,31 +1794,35 @@
     mod tests {
         use super::*;
     
    -    use pyo3::py_run;
    +    use pyo3::{py_run, types::PyTypeMethods};
     
         use crate::npyffi::NPY_NEEDS_PYAPI;
     
         #[test]
         fn test_dtype_new() {
             Python::with_gil(|py| {
    -            assert!(PyArrayDescr::new(py, "float64")
    +            assert!(PyArrayDescr::new_bound(py, "float64")
                     .unwrap()
    -                .is(dtype::<f64>(py)));
    +                .is(&dtype_bound::<f64>(py)));
     
    -            let dt = PyArrayDescr::new(py, [("a", "O"), ("b", "?")].as_ref()).unwrap();
    +            let dt = PyArrayDescr::new_bound(py, [("a", "O"), ("b", "?")].as_ref()).unwrap();
                 assert_eq!(dt.names(), Some(vec!["a", "b"]));
                 assert!(dt.has_object());
    -            assert!(dt.get_field("a").unwrap().0.is(dtype::<PyObject>(py)));
    -            assert!(dt.get_field("b").unwrap().0.is(dtype::<bool>(py)));
    +            assert!(dt
    +                .get_field("a")
    +                .unwrap()
    +                .0
    +                .is(&dtype_bound::<PyObject>(py)));
    +            assert!(dt.get_field("b").unwrap().0.is(&dtype_bound::<bool>(py)));
     
    -            assert!(PyArrayDescr::new(py, &123_usize).is_err());
    +            assert!(PyArrayDescr::new_bound(py, &123_usize).is_err());
             });
         }
     
         #[test]
         fn test_dtype_names() {
             fn type_name<'py, T: Element>(py: Python<'py>) -> String {
    -            dtype::<T>(py).typeobj().qualname().unwrap()
    +            dtype_bound::<T>(py).typeobj().qualname().unwrap()
             }
             Python::with_gil(|py| {
                 assert_eq!(type_name::<bool>(py), "bool_");
    @@ -1282,7 +1858,7 @@
         #[test]
         fn test_dtype_methods_scalar() {
             Python::with_gil(|py| {
    -            let dt = dtype::<f64>(py);
    +            let dt = dtype_bound::<f64>(py);
     
                 assert_eq!(dt.num(), NPY_TYPES::NPY_DOUBLE as c_int);
                 assert_eq!(dt.flags(), 0);
    @@ -1298,7 +1874,7 @@
                 assert!(!dt.has_fields());
                 assert!(!dt.is_aligned_struct());
                 assert!(!dt.has_subarray());
    -            assert!(dt.base().is_equiv_to(dt));
    +            assert!(dt.base().is_equiv_to(&dt));
                 assert_eq!(dt.ndim(), 0);
                 assert_eq!(dt.shape(), vec![]);
             });
    @@ -1307,7 +1883,7 @@
         #[test]
         fn test_dtype_methods_subarray() {
             Python::with_gil(|py| {
    -            let locals = PyDict::new(py);
    +            let locals = PyDict::new_bound(py);
                 py_run!(
                     py,
                     *locals,
    @@ -1317,7 +1893,7 @@
                     .get_item("dtype")
                     .unwrap()
                     .unwrap()
    -                .downcast::<PyArrayDescr>()
    +                .downcast_into::<PyArrayDescr>()
                     .unwrap();
     
                 assert_eq!(dt.num(), NPY_TYPES::NPY_VOID as c_int);
    @@ -1336,14 +1912,14 @@
                 assert!(dt.has_subarray());
                 assert_eq!(dt.ndim(), 2);
                 assert_eq!(dt.shape(), vec![2, 3]);
    -            assert!(dt.base().is_equiv_to(dtype::<f64>(py)));
    +            assert!(dt.base().is_equiv_to(&dtype_bound::<f64>(py)));
             });
         }
     
         #[test]
         fn test_dtype_methods_record() {
             Python::with_gil(|py| {
    -            let locals = PyDict::new(py);
    +            let locals = PyDict::new_bound(py);
                 py_run!(
                     py,
                     *locals,
    @@ -1353,7 +1929,7 @@
                     .get_item("dtype")
                     .unwrap()
                     .unwrap()
    -                .downcast::<PyArrayDescr>()
    +                .downcast_into::<PyArrayDescr>()
                     .unwrap();
     
                 assert_eq!(dt.num(), NPY_TYPES::NPY_VOID as c_int);
    @@ -1374,15 +1950,15 @@
                 assert!(!dt.has_subarray());
                 assert_eq!(dt.ndim(), 0);
                 assert_eq!(dt.shape(), vec![]);
    -            assert!(dt.base().is_equiv_to(dt));
    +            assert!(dt.base().is_equiv_to(&dt));
                 let x = dt.get_field("x").unwrap();
    -            assert!(x.0.is_equiv_to(dtype::<u8>(py)));
    +            assert!(x.0.is_equiv_to(&dtype_bound::<u8>(py)));
                 assert_eq!(x.1, 0);
                 let y = dt.get_field("y").unwrap();
    -            assert!(y.0.is_equiv_to(dtype::<f64>(py)));
    +            assert!(y.0.is_equiv_to(&dtype_bound::<f64>(py)));
                 assert_eq!(y.1, 8);
                 let z = dt.get_field("z").unwrap();
    -            assert!(z.0.is_equiv_to(dtype::<PyObject>(py)));
    +            assert!(z.0.is_equiv_to(&dtype_bound::<PyObject>(py)));
                 assert_eq!(z.1, 16);
             });
         }
    diff --git a/src/numpy/error.rs.html b/src/numpy/error.rs.html
    index a447ed9ef..215a03a64 100644
    --- a/src/numpy/error.rs.html
    +++ b/src/numpy/error.rs.html
    @@ -178,12 +178,16 @@
     177
     178
     179
    +180
    +181
     
    //! Defines error types.
     
     use std::error::Error;
     use std::fmt;
     
    -use pyo3::{exceptions::PyTypeError, Py, PyErr, PyErrArguments, PyObject, Python, ToPyObject};
    +use pyo3::{
    +    exceptions::PyTypeError, Bound, Py, PyErr, PyErrArguments, PyObject, Python, ToPyObject,
    +};
     
     use crate::dtype::PyArrayDescr;
     
    @@ -239,13 +243,13 @@
     
     /// Represents that types of the given arrays do not match.
     #[derive(Debug)]
    -pub struct TypeError<'a> {
    -    from: &'a PyArrayDescr,
    -    to: &'a PyArrayDescr,
    +pub struct TypeError<'py> {
    +    from: Bound<'py, PyArrayDescr>,
    +    to: Bound<'py, PyArrayDescr>,
     }
     
    -impl<'a> TypeError<'a> {
    -    pub(crate) fn new(from: &'a PyArrayDescr, to: &'a PyArrayDescr) -> Self {
    +impl<'py> TypeError<'py> {
    +    pub(crate) fn new(from: Bound<'py, PyArrayDescr>, to: Bound<'py, PyArrayDescr>) -> Self {
             Self { from, to }
         }
     }
    @@ -266,8 +270,8 @@
     impl PyErrArguments for TypeErrorArguments {
         fn arguments<'py>(self, py: Python<'py>) -> PyObject {
             let err = TypeError {
    -            from: self.from.as_ref(py),
    -            to: self.to.as_ref(py),
    +            from: self.from.into_bound(py),
    +            to: self.to.into_bound(py),
             };
     
             err.to_string().to_object(py)
    diff --git a/src/numpy/lib.rs.html b/src/numpy/lib.rs.html
    index 57b892a2e..2f66e5b3b 100644
    --- a/src/numpy/lib.rs.html
    +++ b/src/numpy/lib.rs.html
    @@ -166,6 +166,10 @@
     165
     166
     167
    +168
    +169
    +170
    +171
     
    //! This crate provides Rust interfaces for [NumPy C APIs][c-api],
     //! especially for the [ndarray][ndarray] class.
     //!
    @@ -274,7 +278,11 @@
         PyReadwriteArray5, PyReadwriteArray6, PyReadwriteArrayDyn,
     };
     pub use crate::convert::{IntoPyArray, NpyIndex, ToNpyDims, ToPyArray};
    -pub use crate::dtype::{dtype, Complex32, Complex64, Element, PyArrayDescr};
    +#[allow(deprecated)]
    +pub use crate::dtype::dtype;
    +pub use crate::dtype::{
    +    dtype_bound, Complex32, Complex64, Element, PyArrayDescr, PyArrayDescrMethods,
    +};
     pub use crate::error::{BorrowError, FromVecError, NotContiguousError};
     pub use crate::npyffi::{PY_ARRAY_API, PY_UFUNC_API};
     pub use crate::strings::{PyFixedString, PyFixedUnicode};
    diff --git a/src/numpy/strings.rs.html b/src/numpy/strings.rs.html
    index b536de109..39c77c399 100644
    --- a/src/numpy/strings.rs.html
    +++ b/src/numpy/strings.rs.html
    @@ -243,11 +243,11 @@
     use pyo3::{
         ffi::{Py_UCS1, Py_UCS4},
         sync::GILProtected,
    -    Py, Python,
    +    Bound, Py, Python,
     };
     use rustc_hash::FxHashMap;
     
    -use crate::dtype::{Element, PyArrayDescr};
    +use crate::dtype::{Element, PyArrayDescr, PyArrayDescrMethods};
     use crate::npyffi::NPY_TYPES;
     
     /// A newtype wrapper around [`[u8; N]`][Py_UCS1] to handle [`byte` scalars][numpy-bytes] while satisfying coherence.
    @@ -306,7 +306,7 @@
     unsafe impl<const N: usize> Element for PyFixedString<N> {
         const IS_COPY: bool = true;
     
    -    fn get_dtype<'py>(py: Python<'py>) -> &PyArrayDescr {
    +    fn get_dtype_bound(py: Python<'_>) -> Bound<'_, PyArrayDescr> {
             static DTYPES: TypeDescriptors = TypeDescriptors::new();
     
             unsafe { DTYPES.from_size(py, NPY_TYPES::NPY_STRING, b'|' as _, size_of::<Self>()) }
    @@ -377,7 +377,7 @@
     unsafe impl<const N: usize> Element for PyFixedUnicode<N> {
         const IS_COPY: bool = true;
     
    -    fn get_dtype<'py>(py: Python<'py>) -> &PyArrayDescr {
    +    fn get_dtype_bound(py: Python<'_>) -> Bound<'_, PyArrayDescr> {
             static DTYPES: TypeDescriptors = TypeDescriptors::new();
     
             unsafe { DTYPES.from_size(py, NPY_TYPES::NPY_UNICODE, b'=' as _, size_of::<Self>()) }
    @@ -399,12 +399,12 @@
         /// `npy_type` must be either `NPY_STRING` or `NPY_UNICODE` with matching `byteorder` and `size`
         #[allow(clippy::wrong_self_convention)]
         unsafe fn from_size<'py>(
    -        &'py self,
    +        &self,
             py: Python<'py>,
             npy_type: NPY_TYPES,
             byteorder: c_char,
             size: usize,
    -    ) -> &'py PyArrayDescr {
    +    ) -> Bound<'py, PyArrayDescr> {
             let mut dtypes = self.dtypes.get(py).borrow_mut();
     
             let dtype = match dtypes.get_or_insert_with(Default::default).entry(size) {
    @@ -420,7 +420,7 @@
                 }
             };
     
    -        dtype.clone().into_ref(py)
    +        dtype.clone().into_bound(py)
         }
     }
     
    diff --git a/src/numpy/untyped_array.rs.html b/src/numpy/untyped_array.rs.html
    index d9c359602..99ff93b6a 100644
    --- a/src/numpy/untyped_array.rs.html
    +++ b/src/numpy/untyped_array.rs.html
    @@ -563,13 +563,13 @@
         /// # Example
         ///
         /// ```
    -    /// use numpy::{dtype, PyArray};
    +    /// use numpy::{dtype_bound, PyArray};
         /// use pyo3::Python;
         ///
         /// Python::with_gil(|py| {
         ///    let array = PyArray::from_vec(py, vec![1_i32, 2, 3]);
         ///
    -    ///    assert!(array.dtype().is_equiv_to(dtype::<i32>(py)));
    +    ///    assert!(array.dtype().is_equiv_to(dtype_bound::<i32>(py).as_gil_ref()));
         /// });
         /// ```
         ///
    @@ -733,13 +733,13 @@
         /// # Example
         ///
         /// ```
    -    /// use numpy::{dtype, PyArray};
    +    /// use numpy::{dtype_bound, PyArray};
         /// use pyo3::Python;
         ///
         /// Python::with_gil(|py| {
         ///    let array = PyArray::from_vec(py, vec![1_i32, 2, 3]);
         ///
    -    ///    assert!(array.dtype().is_equiv_to(dtype::<i32>(py)));
    +    ///    assert!(array.dtype().is_equiv_to(dtype_bound::<i32>(py).as_gil_ref()));
         /// });
         /// ```
         ///
    diff --git a/trait.impl/core/clone/trait.Clone.js b/trait.impl/core/clone/trait.Clone.js
    index 56dd52896..9b9976c4a 100644
    --- a/trait.impl/core/clone/trait.Clone.js
    +++ b/trait.impl/core/clone/trait.Clone.js
    @@ -1,3 +1,3 @@
     (function() {var implementors = {
    -"numpy":[["impl Clone for PyArrayObject"],["impl Clone for NPY_BYTEORDER_CHAR"],["impl Clone for Picoseconds"],["impl Clone for PyArrayNeighborhoodIterObject"],["impl Clone for NpyIter"],["impl<const N: usize> Clone for PyFixedUnicode<N>"],["impl Clone for NPY_SEARCHSIDE"],["impl Clone for PyArray_ArrayDescr"],["impl Clone for NPY_DATETIMEUNIT"],["impl Clone for NPY_TYPEKINDCHAR"],["impl Clone for Months"],["impl Clone for Microseconds"],["impl Clone for NPY_SELECTKIND"],["impl Clone for PyArray_Chunk"],["impl Clone for PyUFuncObject"],["impl Clone for npy_stride_sort_item"],["impl Clone for NPY_TYPES"],["impl Clone for NPY_ORDER"],["impl<U: Clone + Unit> Clone for Datetime<U>"],["impl Clone for NPY_SORTKIND"],["impl Clone for Hours"],["impl Clone for NPY_CLIPMODE"],["impl Clone for npy_cdouble"],["impl Clone for Femtoseconds"],["impl Clone for PyArray_DatetimeDTypeMetaData"],["impl Clone for PyArray_DatetimeMetaData"],["impl Clone for PyArrayIterObject"],["impl<const N: usize> Clone for PyFixedString<N>"],["impl Clone for NpyAuxData"],["impl Clone for NPY_TYPECHAR"],["impl Clone for PyArray_Dims"],["impl Clone for PyArray_Descr"],["impl Clone for npy_cfloat"],["impl Clone for npy_clongdouble"],["impl Clone for PyArrayFlagsObject"],["impl Clone for PyArray_ArrFuncs"],["impl Clone for PyArrayMultiIterObject"],["impl Clone for Minutes"],["impl Clone for Attoseconds"],["impl Clone for Days"],["impl Clone for Nanoseconds"],["impl Clone for Milliseconds"],["impl Clone for Weeks"],["impl Clone for NPY_CASTING"],["impl Clone for npy_timedeltastruct"],["impl Clone for Years"],["impl Clone for Seconds"],["impl Clone for PyArrayMapIterObject"],["impl<U: Clone + Unit> Clone for Timedelta<U>"],["impl Clone for NPY_SCALARKIND"],["impl<'a, T, D> Clone for PyReadonlyArray<'a, T, D>
    where\n T: Element,\n D: Dimension,
    "],["impl Clone for PyArrayInterface"],["impl Clone for npy_datetimestruct"]] +"numpy":[["impl Clone for PyArray_ArrFuncs"],["impl Clone for Days"],["impl Clone for PyArray_Descr"],["impl Clone for npy_cfloat"],["impl Clone for PyArrayMapIterObject"],["impl Clone for NPY_BYTEORDER_CHAR"],["impl Clone for PyArrayInterface"],["impl Clone for PyArrayNeighborhoodIterObject"],["impl Clone for Seconds"],["impl Clone for NPY_SCALARKIND"],["impl Clone for NPY_CASTING"],["impl Clone for npy_cdouble"],["impl Clone for Weeks"],["impl Clone for NPY_TYPEKINDCHAR"],["impl Clone for NpyIter"],["impl Clone for Hours"],["impl Clone for npy_clongdouble"],["impl Clone for NPY_TYPES"],["impl Clone for NPY_CLIPMODE"],["impl Clone for Femtoseconds"],["impl Clone for Attoseconds"],["impl Clone for PyArrayObject"],["impl Clone for PyUFuncObject"],["impl Clone for Milliseconds"],["impl Clone for npy_stride_sort_item"],["impl Clone for PyArrayIterObject"],["impl Clone for npy_timedeltastruct"],["impl Clone for PyArray_Dims"],["impl<const N: usize> Clone for PyFixedUnicode<N>"],["impl Clone for NPY_SORTKIND"],["impl<U: Clone + Unit> Clone for Timedelta<U>"],["impl Clone for Nanoseconds"],["impl Clone for Picoseconds"],["impl Clone for Months"],["impl Clone for NpyAuxData"],["impl Clone for PyArray_Chunk"],["impl Clone for npy_datetimestruct"],["impl<'a, T, D> Clone for PyReadonlyArray<'a, T, D>
    where\n T: Element,\n D: Dimension,
    "],["impl Clone for NPY_SELECTKIND"],["impl Clone for PyArrayFlagsObject"],["impl Clone for Minutes"],["impl<U: Clone + Unit> Clone for Datetime<U>"],["impl Clone for PyArray_DatetimeDTypeMetaData"],["impl Clone for Microseconds"],["impl Clone for PyArrayMultiIterObject"],["impl<const N: usize> Clone for PyFixedString<N>"],["impl Clone for PyArray_ArrayDescr"],["impl Clone for NPY_SEARCHSIDE"],["impl Clone for NPY_ORDER"],["impl Clone for NPY_TYPECHAR"],["impl Clone for NPY_DATETIMEUNIT"],["impl Clone for PyArray_DatetimeMetaData"],["impl Clone for Years"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/core/cmp/trait.Eq.js b/trait.impl/core/cmp/trait.Eq.js index 59c99d0ee..f0abb048c 100644 --- a/trait.impl/core/cmp/trait.Eq.js +++ b/trait.impl/core/cmp/trait.Eq.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"numpy":[["impl Eq for Weeks"],["impl Eq for NPY_TYPES"],["impl Eq for Picoseconds"],["impl Eq for Milliseconds"],["impl Eq for NPY_SELECTKIND"],["impl Eq for Microseconds"],["impl Eq for Months"],["impl Eq for NPY_SEARCHSIDE"],["impl<const N: usize> Eq for PyFixedUnicode<N>"],["impl<U: Eq + Unit> Eq for Datetime<U>"],["impl Eq for Minutes"],["impl Eq for NPY_SCALARKIND"],["impl Eq for Femtoseconds"],["impl Eq for Years"],["impl Eq for NPY_CLIPMODE"],["impl Eq for NPY_DATETIMEUNIT"],["impl Eq for Hours"],["impl<U: Eq + Unit> Eq for Timedelta<U>"],["impl Eq for Attoseconds"],["impl Eq for Days"],["impl Eq for NPY_SORTKIND"],["impl Eq for NPY_ORDER"],["impl Eq for Seconds"],["impl Eq for NPY_CASTING"],["impl Eq for Nanoseconds"],["impl<const N: usize> Eq for PyFixedString<N>"],["impl Eq for NPY_BYTEORDER_CHAR"]] +"numpy":[["impl Eq for NPY_SELECTKIND"],["impl Eq for NPY_CLIPMODE"],["impl Eq for Femtoseconds"],["impl Eq for Microseconds"],["impl Eq for Milliseconds"],["impl<U: Eq + Unit> Eq for Datetime<U>"],["impl Eq for Minutes"],["impl Eq for Hours"],["impl Eq for Weeks"],["impl Eq for NPY_CASTING"],["impl<const N: usize> Eq for PyFixedString<N>"],["impl Eq for NPY_SORTKIND"],["impl Eq for Months"],["impl Eq for NPY_DATETIMEUNIT"],["impl Eq for Attoseconds"],["impl Eq for Nanoseconds"],["impl Eq for NPY_TYPES"],["impl<U: Eq + Unit> Eq for Timedelta<U>"],["impl Eq for NPY_BYTEORDER_CHAR"],["impl<const N: usize> Eq for PyFixedUnicode<N>"],["impl Eq for Picoseconds"],["impl Eq for Years"],["impl Eq for Seconds"],["impl Eq for NPY_SEARCHSIDE"],["impl Eq for NPY_SCALARKIND"],["impl Eq for Days"],["impl Eq for NPY_ORDER"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/core/cmp/trait.Ord.js b/trait.impl/core/cmp/trait.Ord.js index 2e9b3317b..d9d498e97 100644 --- a/trait.impl/core/cmp/trait.Ord.js +++ b/trait.impl/core/cmp/trait.Ord.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"numpy":[["impl Ord for Weeks"],["impl<U: Ord + Unit> Ord for Timedelta<U>"],["impl Ord for Femtoseconds"],["impl Ord for NPY_TYPES"],["impl Ord for Years"],["impl Ord for Hours"],["impl Ord for Days"],["impl Ord for Microseconds"],["impl Ord for Nanoseconds"],["impl Ord for Months"],["impl Ord for Minutes"],["impl Ord for Picoseconds"],["impl Ord for Milliseconds"],["impl<const N: usize> Ord for PyFixedUnicode<N>"],["impl Ord for Attoseconds"],["impl Ord for Seconds"],["impl<const N: usize> Ord for PyFixedString<N>"],["impl<U: Ord + Unit> Ord for Datetime<U>"]] +"numpy":[["impl Ord for Femtoseconds"],["impl Ord for Seconds"],["impl Ord for Picoseconds"],["impl<U: Ord + Unit> Ord for Datetime<U>"],["impl<const N: usize> Ord for PyFixedUnicode<N>"],["impl Ord for Days"],["impl Ord for NPY_TYPES"],["impl Ord for Microseconds"],["impl Ord for Months"],["impl Ord for Weeks"],["impl Ord for Attoseconds"],["impl Ord for Nanoseconds"],["impl<U: Ord + Unit> Ord for Timedelta<U>"],["impl Ord for Milliseconds"],["impl Ord for Minutes"],["impl<const N: usize> Ord for PyFixedString<N>"],["impl Ord for Hours"],["impl Ord for Years"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/core/cmp/trait.PartialEq.js b/trait.impl/core/cmp/trait.PartialEq.js index ee3ca4997..11f739fa1 100644 --- a/trait.impl/core/cmp/trait.PartialEq.js +++ b/trait.impl/core/cmp/trait.PartialEq.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"numpy":[["impl PartialEq for NPY_SELECTKIND"],["impl PartialEq for Picoseconds"],["impl<U: PartialEq + Unit> PartialEq for Timedelta<U>"],["impl<const N: usize> PartialEq for PyFixedUnicode<N>"],["impl<U: PartialEq + Unit> PartialEq for Datetime<U>"],["impl PartialEq for Months"],["impl PartialEq for Weeks"],["impl<const N: usize> PartialEq for PyFixedString<N>"],["impl PartialEq for Days"],["impl PartialEq for Hours"],["impl PartialEq for NPY_DATETIMEUNIT"],["impl PartialEq for Femtoseconds"],["impl PartialEq for NPY_TYPES"],["impl PartialEq for Attoseconds"],["impl PartialEq for Microseconds"],["impl PartialEq for NPY_CLIPMODE"],["impl PartialEq for Minutes"],["impl PartialEq for NPY_SCALARKIND"],["impl PartialEq for NPY_SORTKIND"],["impl PartialEq for Nanoseconds"],["impl PartialEq for Milliseconds"],["impl PartialEq for NPY_BYTEORDER_CHAR"],["impl PartialEq for NPY_SEARCHSIDE"],["impl PartialEq for NPY_CASTING"],["impl PartialEq for NPY_ORDER"],["impl PartialEq for Years"],["impl PartialEq for Seconds"]] +"numpy":[["impl PartialEq for NPY_BYTEORDER_CHAR"],["impl PartialEq for NPY_SCALARKIND"],["impl PartialEq for Years"],["impl PartialEq for NPY_DATETIMEUNIT"],["impl<const N: usize> PartialEq for PyFixedUnicode<N>"],["impl PartialEq for NPY_SORTKIND"],["impl PartialEq for Picoseconds"],["impl<U: PartialEq + Unit> PartialEq for Timedelta<U>"],["impl PartialEq for Attoseconds"],["impl PartialEq for Milliseconds"],["impl PartialEq for NPY_CLIPMODE"],["impl PartialEq for Nanoseconds"],["impl PartialEq for NPY_TYPES"],["impl PartialEq for Microseconds"],["impl PartialEq for NPY_SEARCHSIDE"],["impl<const N: usize> PartialEq for PyFixedString<N>"],["impl PartialEq for Days"],["impl PartialEq for Weeks"],["impl PartialEq for Femtoseconds"],["impl PartialEq for NPY_ORDER"],["impl PartialEq for NPY_SELECTKIND"],["impl PartialEq for Months"],["impl<U: PartialEq + Unit> PartialEq for Datetime<U>"],["impl PartialEq for Hours"],["impl PartialEq for Seconds"],["impl PartialEq for Minutes"],["impl PartialEq for NPY_CASTING"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/core/cmp/trait.PartialOrd.js b/trait.impl/core/cmp/trait.PartialOrd.js index cf27ecaf4..2f5722110 100644 --- a/trait.impl/core/cmp/trait.PartialOrd.js +++ b/trait.impl/core/cmp/trait.PartialOrd.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"numpy":[["impl PartialOrd for Attoseconds"],["impl PartialOrd for Picoseconds"],["impl PartialOrd for Months"],["impl<const N: usize> PartialOrd for PyFixedUnicode<N>"],["impl<const N: usize> PartialOrd for PyFixedString<N>"],["impl PartialOrd for Years"],["impl PartialOrd for Weeks"],["impl PartialOrd for Hours"],["impl PartialOrd for Femtoseconds"],["impl PartialOrd for Nanoseconds"],["impl PartialOrd for Days"],["impl PartialOrd for Seconds"],["impl PartialOrd for Minutes"],["impl PartialOrd for Microseconds"],["impl<U: PartialOrd + Unit> PartialOrd for Datetime<U>"],["impl PartialOrd for Milliseconds"],["impl<U: PartialOrd + Unit> PartialOrd for Timedelta<U>"],["impl PartialOrd for NPY_TYPES"]] +"numpy":[["impl PartialOrd for Minutes"],["impl PartialOrd for Nanoseconds"],["impl PartialOrd for NPY_TYPES"],["impl PartialOrd for Years"],["impl PartialOrd for Hours"],["impl PartialOrd for Milliseconds"],["impl PartialOrd for Microseconds"],["impl PartialOrd for Weeks"],["impl PartialOrd for Days"],["impl PartialOrd for Picoseconds"],["impl<const N: usize> PartialOrd for PyFixedString<N>"],["impl PartialOrd for Seconds"],["impl<const N: usize> PartialOrd for PyFixedUnicode<N>"],["impl PartialOrd for Months"],["impl<U: PartialOrd + Unit> PartialOrd for Datetime<U>"],["impl PartialOrd for Attoseconds"],["impl<U: PartialOrd + Unit> PartialOrd for Timedelta<U>"],["impl PartialOrd for Femtoseconds"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/core/convert/trait.AsRef.js b/trait.impl/core/convert/trait.AsRef.js index 061da2875..4ab714d8c 100644 --- a/trait.impl/core/convert/trait.AsRef.js +++ b/trait.impl/core/convert/trait.AsRef.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"numpy":[["impl<T, D> AsRef<PyAny> for PyArray<T, D>"],["impl AsRef<PyAny> for PyArrayDescr"],["impl AsRef<PyAny> for PyUntypedArray"]] +"numpy":[["impl AsRef<PyAny> for PyUntypedArray"],["impl AsRef<PyAny> for PyArrayDescr"],["impl<T, D> AsRef<PyAny> for PyArray<T, D>"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/core/convert/trait.From.js b/trait.impl/core/convert/trait.From.js index 3c272b2e9..9d1e8abdf 100644 --- a/trait.impl/core/convert/trait.From.js +++ b/trait.impl/core/convert/trait.From.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"numpy":[["impl<const N: usize> From<[u8; N]> for PyFixedString<N>"],["impl<'a, T, D> From<&'a PyArray<T, D>> for &'a PyAny"],["impl<U: Unit> From<i64> for Timedelta<U>"],["impl<T, D> From<&PyArray<T, D>> for Py<PyArray<T, D>>"],["impl<const N: usize> From<[u32; N]> for PyFixedUnicode<N>"],["impl From<BorrowError> for PyErr"],["impl From<&PyUntypedArray> for Py<PyUntypedArray>"],["impl<'a> From<&'a PyArrayDescr> for &'a PyAny"],["impl<U: Unit> From<Timedelta<U>> for i64"],["impl<'a> From<&'a PyUntypedArray> for &'a PyAny"],["impl From<&PyArrayDescr> for Py<PyArrayDescr>"],["impl From<FromVecError> for PyErr"],["impl<U: Unit> From<Datetime<U>> for i64"],["impl From<NotContiguousError> for PyErr"],["impl<U: Unit> From<i64> for Datetime<U>"]] +"numpy":[["impl<T, D> From<&PyArray<T, D>> for Py<PyArray<T, D>>"],["impl<U: Unit> From<Datetime<U>> for i64"],["impl<'a> From<&'a PyUntypedArray> for &'a PyAny"],["impl<'a> From<&'a PyArrayDescr> for &'a PyAny"],["impl<U: Unit> From<i64> for Timedelta<U>"],["impl<'a, T, D> From<&'a PyArray<T, D>> for &'a PyAny"],["impl<const N: usize> From<[u8; N]> for PyFixedString<N>"],["impl<U: Unit> From<i64> for Datetime<U>"],["impl<const N: usize> From<[u32; N]> for PyFixedUnicode<N>"],["impl<U: Unit> From<Timedelta<U>> for i64"],["impl From<&PyUntypedArray> for Py<PyUntypedArray>"],["impl From<FromVecError> for PyErr"],["impl From<BorrowError> for PyErr"],["impl From<NotContiguousError> for PyErr"],["impl From<&PyArrayDescr> for Py<PyArrayDescr>"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/core/fmt/trait.Debug.js b/trait.impl/core/fmt/trait.Debug.js index 9fca75e04..9acd71408 100644 --- a/trait.impl/core/fmt/trait.Debug.js +++ b/trait.impl/core/fmt/trait.Debug.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"numpy":[["impl Debug for npy_stride_sort_item"],["impl Debug for Days"],["impl<const N: usize> Debug for PyFixedUnicode<N>"],["impl Debug for NPY_BYTEORDER_CHAR"],["impl Debug for npy_cfloat"],["impl<T, D> Debug for PyArray<T, D>"],["impl<'py, T, D, C> Debug for PyArrayLike<'py, T, D, C>
    where\n T: Element + Debug,\n D: Dimension + Debug,\n C: Coerce + Debug,
    "],["impl Debug for Years"],["impl Debug for Hours"],["impl Debug for TypeMustMatch"],["impl Debug for Attoseconds"],["impl Debug for NPY_ORDER"],["impl Debug for Picoseconds"],["impl Debug for NPY_SCALARKIND"],["impl Debug for npy_clongdouble"],["impl Debug for Femtoseconds"],["impl Debug for npy_cdouble"],["impl Debug for npy_datetimestruct"],["impl Debug for Weeks"],["impl Debug for NPY_CASTING"],["impl Debug for PyArrayDescr"],["impl Debug for NPY_TYPECHAR"],["impl Debug for NpyIter"],["impl<U: Unit> Debug for Datetime<U>"],["impl<'py, T, D> Debug for PyReadonlyArray<'py, T, D>
    where\n T: Element,\n D: Dimension,
    "],["impl Debug for npy_timedeltastruct"],["impl Debug for Seconds"],["impl<'py, T, D> Debug for PyReadwriteArray<'py, T, D>
    where\n T: Element,\n D: Dimension,
    "],["impl Debug for NPY_DATETIMEUNIT"],["impl Debug for NPY_SELECTKIND"],["impl Debug for NPY_SORTKIND"],["impl Debug for AllowTypeChange"],["impl Debug for FromVecError"],["impl Debug for NPY_TYPES"],["impl<const N: usize> Debug for PyFixedString<N>"],["impl Debug for Nanoseconds"],["impl Debug for Minutes"],["impl Debug for NPY_TYPEKINDCHAR"],["impl Debug for PyUntypedArray"],["impl<U: Unit> Debug for Timedelta<U>"],["impl Debug for Microseconds"],["impl Debug for NPY_SEARCHSIDE"],["impl Debug for BorrowError"],["impl Debug for NotContiguousError"],["impl Debug for Months"],["impl Debug for Milliseconds"]] +"numpy":[["impl<const N: usize> Debug for PyFixedString<N>"],["impl<T, D> Debug for PyArray<T, D>"],["impl<const N: usize> Debug for PyFixedUnicode<N>"],["impl Debug for npy_cdouble"],["impl Debug for Picoseconds"],["impl Debug for Months"],["impl Debug for NPY_SELECTKIND"],["impl Debug for AllowTypeChange"],["impl Debug for NotContiguousError"],["impl Debug for NPY_ORDER"],["impl Debug for Hours"],["impl Debug for Weeks"],["impl Debug for Days"],["impl Debug for NPY_SEARCHSIDE"],["impl Debug for Seconds"],["impl Debug for PyUntypedArray"],["impl<'py, T, D, C> Debug for PyArrayLike<'py, T, D, C>
    where\n T: Element + Debug,\n D: Dimension + Debug,\n C: Coerce + Debug,
    "],["impl Debug for Nanoseconds"],["impl Debug for NPY_CASTING"],["impl Debug for NPY_SORTKIND"],["impl Debug for Years"],["impl Debug for NPY_TYPEKINDCHAR"],["impl Debug for PyArrayDescr"],["impl Debug for BorrowError"],["impl Debug for npy_cfloat"],["impl Debug for Milliseconds"],["impl Debug for Minutes"],["impl Debug for npy_datetimestruct"],["impl Debug for NPY_TYPES"],["impl Debug for npy_timedeltastruct"],["impl Debug for Microseconds"],["impl Debug for npy_stride_sort_item"],["impl<U: Unit> Debug for Timedelta<U>"],["impl<'py, T, D> Debug for PyReadwriteArray<'py, T, D>
    where\n T: Element,\n D: Dimension,
    "],["impl Debug for FromVecError"],["impl Debug for Attoseconds"],["impl Debug for NpyIter"],["impl Debug for Femtoseconds"],["impl Debug for NPY_SCALARKIND"],["impl<'py, T, D> Debug for PyReadonlyArray<'py, T, D>
    where\n T: Element,\n D: Dimension,
    "],["impl Debug for NPY_DATETIMEUNIT"],["impl Debug for NPY_BYTEORDER_CHAR"],["impl Debug for npy_clongdouble"],["impl Debug for NPY_TYPECHAR"],["impl<U: Unit> Debug for Datetime<U>"],["impl Debug for TypeMustMatch"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/core/fmt/trait.Display.js b/trait.impl/core/fmt/trait.Display.js index 4e75386e5..840ffcf5a 100644 --- a/trait.impl/core/fmt/trait.Display.js +++ b/trait.impl/core/fmt/trait.Display.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"numpy":[["impl Display for NotContiguousError"],["impl<T, D> Display for PyArray<T, D>"],["impl Display for FromVecError"],["impl Display for PyUntypedArray"],["impl<const N: usize> Display for PyFixedString<N>"],["impl Display for BorrowError"],["impl Display for PyArrayDescr"],["impl<const N: usize> Display for PyFixedUnicode<N>"]] +"numpy":[["impl<T, D> Display for PyArray<T, D>"],["impl Display for NotContiguousError"],["impl<const N: usize> Display for PyFixedUnicode<N>"],["impl Display for FromVecError"],["impl Display for PyUntypedArray"],["impl Display for BorrowError"],["impl<const N: usize> Display for PyFixedString<N>"],["impl Display for PyArrayDescr"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/core/hash/trait.Hash.js b/trait.impl/core/hash/trait.Hash.js index e71f361bc..f93737304 100644 --- a/trait.impl/core/hash/trait.Hash.js +++ b/trait.impl/core/hash/trait.Hash.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"numpy":[["impl Hash for NPY_SEARCHSIDE"],["impl Hash for Nanoseconds"],["impl Hash for Years"],["impl Hash for NPY_CASTING"],["impl Hash for Days"],["impl<U: Hash + Unit> Hash for Timedelta<U>"],["impl Hash for Seconds"],["impl Hash for NPY_SCALARKIND"],["impl Hash for NPY_ORDER"],["impl Hash for Minutes"],["impl Hash for Femtoseconds"],["impl<U: Hash + Unit> Hash for Datetime<U>"],["impl<const N: usize> Hash for PyFixedString<N>"],["impl Hash for Milliseconds"],["impl Hash for Weeks"],["impl Hash for NPY_SELECTKIND"],["impl Hash for NPY_SORTKIND"],["impl Hash for Picoseconds"],["impl Hash for NPY_DATETIMEUNIT"],["impl Hash for Microseconds"],["impl Hash for NPY_BYTEORDER_CHAR"],["impl Hash for Months"],["impl Hash for NPY_TYPES"],["impl<const N: usize> Hash for PyFixedUnicode<N>"],["impl Hash for Attoseconds"],["impl Hash for NPY_CLIPMODE"],["impl Hash for Hours"]] +"numpy":[["impl Hash for NPY_SEARCHSIDE"],["impl Hash for Microseconds"],["impl Hash for NPY_ORDER"],["impl Hash for NPY_BYTEORDER_CHAR"],["impl Hash for Nanoseconds"],["impl<const N: usize> Hash for PyFixedString<N>"],["impl Hash for NPY_SELECTKIND"],["impl Hash for NPY_SCALARKIND"],["impl Hash for NPY_TYPES"],["impl Hash for Picoseconds"],["impl Hash for NPY_DATETIMEUNIT"],["impl Hash for NPY_CASTING"],["impl<const N: usize> Hash for PyFixedUnicode<N>"],["impl Hash for Femtoseconds"],["impl Hash for Weeks"],["impl Hash for Seconds"],["impl Hash for Years"],["impl Hash for Attoseconds"],["impl Hash for Minutes"],["impl<U: Hash + Unit> Hash for Timedelta<U>"],["impl Hash for Hours"],["impl Hash for Months"],["impl<U: Hash + Unit> Hash for Datetime<U>"],["impl Hash for NPY_CLIPMODE"],["impl Hash for Milliseconds"],["impl Hash for Days"],["impl Hash for NPY_SORTKIND"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/core/marker/trait.Copy.js b/trait.impl/core/marker/trait.Copy.js index 64c45e5c6..a70e42709 100644 --- a/trait.impl/core/marker/trait.Copy.js +++ b/trait.impl/core/marker/trait.Copy.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"numpy":[["impl Copy for Attoseconds"],["impl Copy for npy_clongdouble"],["impl Copy for Milliseconds"],["impl Copy for Microseconds"],["impl Copy for NPY_TYPES"],["impl Copy for NPY_TYPEKINDCHAR"],["impl Copy for npy_timedeltastruct"],["impl Copy for NPY_BYTEORDER_CHAR"],["impl Copy for PyArrayInterface"],["impl Copy for PyArrayNeighborhoodIterObject"],["impl Copy for npy_cdouble"],["impl Copy for NPY_CASTING"],["impl<const N: usize> Copy for PyFixedString<N>"],["impl<U: Copy + Unit> Copy for Timedelta<U>"],["impl Copy for Days"],["impl Copy for NPY_SCALARKIND"],["impl Copy for NpyIter"],["impl Copy for npy_stride_sort_item"],["impl Copy for PyArray_Descr"],["impl Copy for NPY_DATETIMEUNIT"],["impl Copy for Hours"],["impl Copy for PyArrayObject"],["impl Copy for Seconds"],["impl Copy for PyArray_DatetimeDTypeMetaData"],["impl Copy for NPY_SELECTKIND"],["impl<const N: usize> Copy for PyFixedUnicode<N>"],["impl Copy for PyArrayIterObject"],["impl Copy for Years"],["impl Copy for NPY_TYPECHAR"],["impl Copy for Minutes"],["impl Copy for PyArray_Chunk"],["impl Copy for Weeks"],["impl Copy for PyArray_ArrayDescr"],["impl Copy for PyArrayFlagsObject"],["impl Copy for NPY_ORDER"],["impl Copy for PyUFuncObject"],["impl<U: Copy + Unit> Copy for Datetime<U>"],["impl Copy for npy_datetimestruct"],["impl Copy for PyArrayMapIterObject"],["impl Copy for NpyAuxData"],["impl Copy for PyArray_ArrFuncs"],["impl Copy for Nanoseconds"],["impl Copy for PyArrayMultiIterObject"],["impl Copy for Femtoseconds"],["impl Copy for PyArray_Dims"],["impl Copy for npy_cfloat"],["impl Copy for PyArray_DatetimeMetaData"],["impl Copy for Picoseconds"],["impl Copy for NPY_SEARCHSIDE"],["impl Copy for Months"],["impl Copy for NPY_CLIPMODE"],["impl Copy for NPY_SORTKIND"]] +"numpy":[["impl Copy for PyArray_DatetimeDTypeMetaData"],["impl Copy for NPY_TYPES"],["impl Copy for Attoseconds"],["impl Copy for NpyIter"],["impl Copy for Picoseconds"],["impl<const N: usize> Copy for PyFixedUnicode<N>"],["impl Copy for PyArrayMultiIterObject"],["impl Copy for NPY_CLIPMODE"],["impl Copy for PyArray_ArrFuncs"],["impl Copy for PyArrayNeighborhoodIterObject"],["impl<U: Copy + Unit> Copy for Timedelta<U>"],["impl Copy for NPY_CASTING"],["impl Copy for npy_cdouble"],["impl Copy for NPY_SCALARKIND"],["impl Copy for PyArrayFlagsObject"],["impl Copy for PyArrayIterObject"],["impl Copy for Years"],["impl Copy for PyArray_Descr"],["impl Copy for NPY_DATETIMEUNIT"],["impl Copy for Hours"],["impl Copy for npy_cfloat"],["impl Copy for NPY_SORTKIND"],["impl Copy for Weeks"],["impl Copy for PyArray_DatetimeMetaData"],["impl Copy for NPY_SEARCHSIDE"],["impl Copy for npy_stride_sort_item"],["impl Copy for Nanoseconds"],["impl Copy for PyUFuncObject"],["impl Copy for Days"],["impl Copy for npy_clongdouble"],["impl Copy for PyArrayObject"],["impl Copy for NPY_SELECTKIND"],["impl Copy for PyArray_Dims"],["impl Copy for Microseconds"],["impl Copy for NpyAuxData"],["impl Copy for Seconds"],["impl Copy for NPY_ORDER"],["impl Copy for Milliseconds"],["impl Copy for PyArrayInterface"],["impl Copy for NPY_TYPEKINDCHAR"],["impl Copy for PyArray_Chunk"],["impl Copy for npy_datetimestruct"],["impl Copy for Months"],["impl Copy for npy_timedeltastruct"],["impl Copy for PyArrayMapIterObject"],["impl<const N: usize> Copy for PyFixedString<N>"],["impl Copy for Minutes"],["impl Copy for NPY_TYPECHAR"],["impl Copy for NPY_BYTEORDER_CHAR"],["impl<U: Copy + Unit> Copy for Datetime<U>"],["impl Copy for PyArray_ArrayDescr"],["impl Copy for Femtoseconds"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/core/marker/trait.StructuralEq.js b/trait.impl/core/marker/trait.StructuralEq.js index fc8fb3afc..5015dddc2 100644 --- a/trait.impl/core/marker/trait.StructuralEq.js +++ b/trait.impl/core/marker/trait.StructuralEq.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"numpy":[["impl StructuralEq for NPY_ORDER"],["impl StructuralEq for Picoseconds"],["impl<const N: usize> StructuralEq for PyFixedString<N>"],["impl StructuralEq for Months"],["impl StructuralEq for NPY_SELECTKIND"],["impl<const N: usize> StructuralEq for PyFixedUnicode<N>"],["impl StructuralEq for Attoseconds"],["impl StructuralEq for NPY_TYPES"],["impl<U: Unit> StructuralEq for Timedelta<U>"],["impl<U: Unit> StructuralEq for Datetime<U>"],["impl StructuralEq for Hours"],["impl StructuralEq for Femtoseconds"],["impl StructuralEq for Seconds"],["impl StructuralEq for Weeks"],["impl StructuralEq for Days"],["impl StructuralEq for Minutes"],["impl StructuralEq for NPY_SCALARKIND"],["impl StructuralEq for NPY_CASTING"],["impl StructuralEq for NPY_BYTEORDER_CHAR"],["impl StructuralEq for Nanoseconds"],["impl StructuralEq for NPY_SEARCHSIDE"],["impl StructuralEq for NPY_CLIPMODE"],["impl StructuralEq for Milliseconds"],["impl StructuralEq for Microseconds"],["impl StructuralEq for NPY_SORTKIND"],["impl StructuralEq for NPY_DATETIMEUNIT"],["impl StructuralEq for Years"]] +"numpy":[["impl StructuralEq for NPY_DATETIMEUNIT"],["impl StructuralEq for NPY_SEARCHSIDE"],["impl StructuralEq for NPY_TYPES"],["impl StructuralEq for Femtoseconds"],["impl StructuralEq for NPY_BYTEORDER_CHAR"],["impl<const N: usize> StructuralEq for PyFixedString<N>"],["impl StructuralEq for NPY_SCALARKIND"],["impl StructuralEq for Seconds"],["impl<U: Unit> StructuralEq for Timedelta<U>"],["impl StructuralEq for Nanoseconds"],["impl StructuralEq for Minutes"],["impl StructuralEq for Milliseconds"],["impl StructuralEq for NPY_SORTKIND"],["impl StructuralEq for Picoseconds"],["impl StructuralEq for Months"],["impl StructuralEq for NPY_SELECTKIND"],["impl<U: Unit> StructuralEq for Datetime<U>"],["impl StructuralEq for NPY_CLIPMODE"],["impl StructuralEq for Years"],["impl StructuralEq for NPY_ORDER"],["impl StructuralEq for Attoseconds"],["impl StructuralEq for Days"],["impl StructuralEq for Microseconds"],["impl<const N: usize> StructuralEq for PyFixedUnicode<N>"],["impl StructuralEq for Weeks"],["impl StructuralEq for NPY_CASTING"],["impl StructuralEq for Hours"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/core/marker/trait.StructuralPartialEq.js b/trait.impl/core/marker/trait.StructuralPartialEq.js index 79ba1be0e..a84633eaa 100644 --- a/trait.impl/core/marker/trait.StructuralPartialEq.js +++ b/trait.impl/core/marker/trait.StructuralPartialEq.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"numpy":[["impl StructuralPartialEq for Hours"],["impl<const N: usize> StructuralPartialEq for PyFixedUnicode<N>"],["impl StructuralPartialEq for NPY_ORDER"],["impl StructuralPartialEq for Weeks"],["impl<const N: usize> StructuralPartialEq for PyFixedString<N>"],["impl StructuralPartialEq for NPY_DATETIMEUNIT"],["impl StructuralPartialEq for Nanoseconds"],["impl StructuralPartialEq for Femtoseconds"],["impl StructuralPartialEq for NPY_SELECTKIND"],["impl StructuralPartialEq for NPY_BYTEORDER_CHAR"],["impl StructuralPartialEq for Seconds"],["impl StructuralPartialEq for Attoseconds"],["impl StructuralPartialEq for Years"],["impl StructuralPartialEq for NPY_SEARCHSIDE"],["impl<U: Unit> StructuralPartialEq for Datetime<U>"],["impl<U: Unit> StructuralPartialEq for Timedelta<U>"],["impl StructuralPartialEq for NPY_CLIPMODE"],["impl StructuralPartialEq for NPY_TYPES"],["impl StructuralPartialEq for Minutes"],["impl StructuralPartialEq for Days"],["impl StructuralPartialEq for Milliseconds"],["impl StructuralPartialEq for Picoseconds"],["impl StructuralPartialEq for NPY_SORTKIND"],["impl StructuralPartialEq for Microseconds"],["impl StructuralPartialEq for NPY_SCALARKIND"],["impl StructuralPartialEq for NPY_CASTING"],["impl StructuralPartialEq for Months"]] +"numpy":[["impl StructuralPartialEq for Milliseconds"],["impl StructuralPartialEq for NPY_CLIPMODE"],["impl<const N: usize> StructuralPartialEq for PyFixedUnicode<N>"],["impl StructuralPartialEq for NPY_SCALARKIND"],["impl StructuralPartialEq for NPY_SORTKIND"],["impl StructuralPartialEq for Years"],["impl StructuralPartialEq for NPY_DATETIMEUNIT"],["impl StructuralPartialEq for NPY_SELECTKIND"],["impl StructuralPartialEq for NPY_CASTING"],["impl StructuralPartialEq for Picoseconds"],["impl StructuralPartialEq for Months"],["impl StructuralPartialEq for NPY_TYPES"],["impl StructuralPartialEq for Microseconds"],["impl StructuralPartialEq for Minutes"],["impl StructuralPartialEq for Days"],["impl StructuralPartialEq for Attoseconds"],["impl StructuralPartialEq for Seconds"],["impl<U: Unit> StructuralPartialEq for Timedelta<U>"],["impl StructuralPartialEq for NPY_BYTEORDER_CHAR"],["impl<U: Unit> StructuralPartialEq for Datetime<U>"],["impl StructuralPartialEq for Nanoseconds"],["impl StructuralPartialEq for NPY_ORDER"],["impl StructuralPartialEq for Weeks"],["impl StructuralPartialEq for Hours"],["impl<const N: usize> StructuralPartialEq for PyFixedString<N>"],["impl StructuralPartialEq for Femtoseconds"],["impl StructuralPartialEq for NPY_SEARCHSIDE"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/core/marker/trait.Sync.js b/trait.impl/core/marker/trait.Sync.js index a3c3cd0ed..863ec7d05 100644 --- a/trait.impl/core/marker/trait.Sync.js +++ b/trait.impl/core/marker/trait.Sync.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"numpy":[["impl<T, D> !Sync for PyArray<T, D>",1,["numpy::array::PyArray"]],["impl Sync for TypeMustMatch",1,["numpy::array_like::TypeMustMatch"]],["impl Sync for AllowTypeChange",1,["numpy::array_like::AllowTypeChange"]],["impl<'py, T, D, C = TypeMustMatch> !Sync for PyArrayLike<'py, T, D, C>",1,["numpy::array_like::PyArrayLike"]],["impl<'py, T, D> !Sync for PyReadonlyArray<'py, T, D>",1,["numpy::borrow::PyReadonlyArray"]],["impl<'py, T, D> !Sync for PyReadwriteArray<'py, T, D>",1,["numpy::borrow::PyReadwriteArray"]],["impl Sync for Years",1,["numpy::datetime::units::Years"]],["impl Sync for Months",1,["numpy::datetime::units::Months"]],["impl Sync for Weeks",1,["numpy::datetime::units::Weeks"]],["impl Sync for Days",1,["numpy::datetime::units::Days"]],["impl Sync for Hours",1,["numpy::datetime::units::Hours"]],["impl Sync for Minutes",1,["numpy::datetime::units::Minutes"]],["impl Sync for Seconds",1,["numpy::datetime::units::Seconds"]],["impl Sync for Milliseconds",1,["numpy::datetime::units::Milliseconds"]],["impl Sync for Microseconds",1,["numpy::datetime::units::Microseconds"]],["impl Sync for Nanoseconds",1,["numpy::datetime::units::Nanoseconds"]],["impl Sync for Picoseconds",1,["numpy::datetime::units::Picoseconds"]],["impl Sync for Femtoseconds",1,["numpy::datetime::units::Femtoseconds"]],["impl Sync for Attoseconds",1,["numpy::datetime::units::Attoseconds"]],["impl<U> Sync for Datetime<U>",1,["numpy::datetime::Datetime"]],["impl<U> Sync for Timedelta<U>",1,["numpy::datetime::Timedelta"]],["impl !Sync for PyArrayDescr",1,["numpy::dtype::PyArrayDescr"]],["impl Sync for FromVecError",1,["numpy::error::FromVecError"]],["impl Sync for NotContiguousError",1,["numpy::error::NotContiguousError"]],["impl Sync for BorrowError",1,["numpy::error::BorrowError"]],["impl Sync for NpyTypes",1,["numpy::npyffi::array::NpyTypes"]],["impl !Sync for PyArrayObject",1,["numpy::npyffi::objects::PyArrayObject"]],["impl !Sync for PyArray_Descr",1,["numpy::npyffi::objects::PyArray_Descr"]],["impl !Sync for PyArray_ArrayDescr",1,["numpy::npyffi::objects::PyArray_ArrayDescr"]],["impl !Sync for PyArray_ArrFuncs",1,["numpy::npyffi::objects::PyArray_ArrFuncs"]],["impl !Sync for PyArrayFlagsObject",1,["numpy::npyffi::objects::PyArrayFlagsObject"]],["impl !Sync for PyArray_Dims",1,["numpy::npyffi::objects::PyArray_Dims"]],["impl !Sync for PyArray_Chunk",1,["numpy::npyffi::objects::PyArray_Chunk"]],["impl !Sync for PyArrayInterface",1,["numpy::npyffi::objects::PyArrayInterface"]],["impl !Sync for PyUFuncObject",1,["numpy::npyffi::objects::PyUFuncObject"]],["impl Sync for NpyIter",1,["numpy::npyffi::objects::NpyIter"]],["impl !Sync for PyArrayIterObject",1,["numpy::npyffi::objects::PyArrayIterObject"]],["impl !Sync for PyArrayMultiIterObject",1,["numpy::npyffi::objects::PyArrayMultiIterObject"]],["impl !Sync for PyArrayNeighborhoodIterObject",1,["numpy::npyffi::objects::PyArrayNeighborhoodIterObject"]],["impl !Sync for PyArrayMapIterObject",1,["numpy::npyffi::objects::PyArrayMapIterObject"]],["impl !Sync for NpyAuxData",1,["numpy::npyffi::objects::NpyAuxData"]],["impl Sync for PyArray_DatetimeMetaData",1,["numpy::npyffi::objects::PyArray_DatetimeMetaData"]],["impl !Sync for PyArray_DatetimeDTypeMetaData",1,["numpy::npyffi::objects::PyArray_DatetimeDTypeMetaData"]],["impl Sync for npy_cdouble",1,["numpy::npyffi::types::npy_cdouble"]],["impl Sync for npy_cfloat",1,["numpy::npyffi::types::npy_cfloat"]],["impl Sync for npy_clongdouble",1,["numpy::npyffi::types::npy_clongdouble"]],["impl Sync for NPY_ORDER",1,["numpy::npyffi::types::NPY_ORDER"]],["impl Sync for NPY_SCALARKIND",1,["numpy::npyffi::types::NPY_SCALARKIND"]],["impl Sync for NPY_SORTKIND",1,["numpy::npyffi::types::NPY_SORTKIND"]],["impl Sync for NPY_SEARCHSIDE",1,["numpy::npyffi::types::NPY_SEARCHSIDE"]],["impl Sync for NPY_DATETIMEUNIT",1,["numpy::npyffi::types::NPY_DATETIMEUNIT"]],["impl Sync for NPY_TYPES",1,["numpy::npyffi::types::NPY_TYPES"]],["impl Sync for NPY_SELECTKIND",1,["numpy::npyffi::types::NPY_SELECTKIND"]],["impl Sync for NPY_CASTING",1,["numpy::npyffi::types::NPY_CASTING"]],["impl Sync for NPY_CLIPMODE",1,["numpy::npyffi::types::NPY_CLIPMODE"]],["impl Sync for npy_datetimestruct",1,["numpy::npyffi::types::npy_datetimestruct"]],["impl Sync for npy_timedeltastruct",1,["numpy::npyffi::types::npy_timedeltastruct"]],["impl Sync for npy_stride_sort_item",1,["numpy::npyffi::types::npy_stride_sort_item"]],["impl Sync for NPY_TYPECHAR",1,["numpy::npyffi::types::NPY_TYPECHAR"]],["impl Sync for NPY_TYPEKINDCHAR",1,["numpy::npyffi::types::NPY_TYPEKINDCHAR"]],["impl Sync for NPY_BYTEORDER_CHAR",1,["numpy::npyffi::types::NPY_BYTEORDER_CHAR"]],["impl<const N: usize> Sync for PyFixedString<N>",1,["numpy::strings::PyFixedString"]],["impl<const N: usize> Sync for PyFixedUnicode<N>",1,["numpy::strings::PyFixedUnicode"]],["impl !Sync for PyUntypedArray",1,["numpy::untyped_array::PyUntypedArray"]],["impl Sync for PyArrayAPI"],["impl Sync for PyUFuncAPI"]] +"numpy":[["impl<T, D> !Sync for PyArray<T, D>",1,["numpy::array::PyArray"]],["impl Sync for TypeMustMatch",1,["numpy::array_like::TypeMustMatch"]],["impl Sync for AllowTypeChange",1,["numpy::array_like::AllowTypeChange"]],["impl<'py, T, D, C = TypeMustMatch> !Sync for PyArrayLike<'py, T, D, C>",1,["numpy::array_like::PyArrayLike"]],["impl<'py, T, D> !Sync for PyReadonlyArray<'py, T, D>",1,["numpy::borrow::PyReadonlyArray"]],["impl<'py, T, D> !Sync for PyReadwriteArray<'py, T, D>",1,["numpy::borrow::PyReadwriteArray"]],["impl Sync for Years",1,["numpy::datetime::units::Years"]],["impl Sync for Months",1,["numpy::datetime::units::Months"]],["impl Sync for Weeks",1,["numpy::datetime::units::Weeks"]],["impl Sync for Days",1,["numpy::datetime::units::Days"]],["impl Sync for Hours",1,["numpy::datetime::units::Hours"]],["impl Sync for Minutes",1,["numpy::datetime::units::Minutes"]],["impl Sync for Seconds",1,["numpy::datetime::units::Seconds"]],["impl Sync for Milliseconds",1,["numpy::datetime::units::Milliseconds"]],["impl Sync for Microseconds",1,["numpy::datetime::units::Microseconds"]],["impl Sync for Nanoseconds",1,["numpy::datetime::units::Nanoseconds"]],["impl Sync for Picoseconds",1,["numpy::datetime::units::Picoseconds"]],["impl Sync for Femtoseconds",1,["numpy::datetime::units::Femtoseconds"]],["impl Sync for Attoseconds",1,["numpy::datetime::units::Attoseconds"]],["impl<U> Sync for Datetime<U>",1,["numpy::datetime::Datetime"]],["impl<U> Sync for Timedelta<U>",1,["numpy::datetime::Timedelta"]],["impl !Sync for PyArrayDescr",1,["numpy::dtype::PyArrayDescr"]],["impl Sync for FromVecError",1,["numpy::error::FromVecError"]],["impl Sync for NotContiguousError",1,["numpy::error::NotContiguousError"]],["impl Sync for BorrowError",1,["numpy::error::BorrowError"]],["impl Sync for NpyTypes",1,["numpy::npyffi::array::NpyTypes"]],["impl !Sync for PyArrayObject",1,["numpy::npyffi::objects::PyArrayObject"]],["impl !Sync for PyArray_Descr",1,["numpy::npyffi::objects::PyArray_Descr"]],["impl !Sync for PyArray_ArrayDescr",1,["numpy::npyffi::objects::PyArray_ArrayDescr"]],["impl !Sync for PyArray_ArrFuncs",1,["numpy::npyffi::objects::PyArray_ArrFuncs"]],["impl !Sync for PyArrayFlagsObject",1,["numpy::npyffi::objects::PyArrayFlagsObject"]],["impl !Sync for PyArray_Dims",1,["numpy::npyffi::objects::PyArray_Dims"]],["impl !Sync for PyArray_Chunk",1,["numpy::npyffi::objects::PyArray_Chunk"]],["impl !Sync for PyArrayInterface",1,["numpy::npyffi::objects::PyArrayInterface"]],["impl !Sync for PyUFuncObject",1,["numpy::npyffi::objects::PyUFuncObject"]],["impl Sync for NpyIter",1,["numpy::npyffi::objects::NpyIter"]],["impl !Sync for PyArrayIterObject",1,["numpy::npyffi::objects::PyArrayIterObject"]],["impl !Sync for PyArrayMultiIterObject",1,["numpy::npyffi::objects::PyArrayMultiIterObject"]],["impl !Sync for PyArrayNeighborhoodIterObject",1,["numpy::npyffi::objects::PyArrayNeighborhoodIterObject"]],["impl !Sync for PyArrayMapIterObject",1,["numpy::npyffi::objects::PyArrayMapIterObject"]],["impl !Sync for NpyAuxData",1,["numpy::npyffi::objects::NpyAuxData"]],["impl Sync for PyArray_DatetimeMetaData",1,["numpy::npyffi::objects::PyArray_DatetimeMetaData"]],["impl !Sync for PyArray_DatetimeDTypeMetaData",1,["numpy::npyffi::objects::PyArray_DatetimeDTypeMetaData"]],["impl Sync for npy_cdouble",1,["numpy::npyffi::types::npy_cdouble"]],["impl Sync for npy_cfloat",1,["numpy::npyffi::types::npy_cfloat"]],["impl Sync for npy_clongdouble",1,["numpy::npyffi::types::npy_clongdouble"]],["impl Sync for NPY_ORDER",1,["numpy::npyffi::types::NPY_ORDER"]],["impl Sync for NPY_SCALARKIND",1,["numpy::npyffi::types::NPY_SCALARKIND"]],["impl Sync for NPY_SORTKIND",1,["numpy::npyffi::types::NPY_SORTKIND"]],["impl Sync for NPY_SEARCHSIDE",1,["numpy::npyffi::types::NPY_SEARCHSIDE"]],["impl Sync for NPY_DATETIMEUNIT",1,["numpy::npyffi::types::NPY_DATETIMEUNIT"]],["impl Sync for NPY_TYPES",1,["numpy::npyffi::types::NPY_TYPES"]],["impl Sync for NPY_SELECTKIND",1,["numpy::npyffi::types::NPY_SELECTKIND"]],["impl Sync for NPY_CASTING",1,["numpy::npyffi::types::NPY_CASTING"]],["impl Sync for NPY_CLIPMODE",1,["numpy::npyffi::types::NPY_CLIPMODE"]],["impl Sync for npy_datetimestruct",1,["numpy::npyffi::types::npy_datetimestruct"]],["impl Sync for npy_timedeltastruct",1,["numpy::npyffi::types::npy_timedeltastruct"]],["impl Sync for npy_stride_sort_item",1,["numpy::npyffi::types::npy_stride_sort_item"]],["impl Sync for NPY_TYPECHAR",1,["numpy::npyffi::types::NPY_TYPECHAR"]],["impl Sync for NPY_TYPEKINDCHAR",1,["numpy::npyffi::types::NPY_TYPEKINDCHAR"]],["impl Sync for NPY_BYTEORDER_CHAR",1,["numpy::npyffi::types::NPY_BYTEORDER_CHAR"]],["impl<const N: usize> Sync for PyFixedString<N>",1,["numpy::strings::PyFixedString"]],["impl<const N: usize> Sync for PyFixedUnicode<N>",1,["numpy::strings::PyFixedUnicode"]],["impl !Sync for PyUntypedArray",1,["numpy::untyped_array::PyUntypedArray"]],["impl Sync for PyUFuncAPI"],["impl Sync for PyArrayAPI"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/core/ops/deref/trait.Deref.js b/trait.impl/core/ops/deref/trait.Deref.js index 423468f8c..44e5d7f7b 100644 --- a/trait.impl/core/ops/deref/trait.Deref.js +++ b/trait.impl/core/ops/deref/trait.Deref.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"numpy":[["impl<'py, T, D> Deref for PyReadonlyArray<'py, T, D>
    where\n T: Element,\n D: Dimension,
    "],["impl Deref for PyArrayDescr"],["impl Deref for PyUntypedArray"],["impl<'py, T, D, C> Deref for PyArrayLike<'py, T, D, C>
    where\n T: Element,\n D: Dimension,\n C: Coerce,
    "],["impl<T, D> Deref for PyArray<T, D>"],["impl<'py, T, D> Deref for PyReadwriteArray<'py, T, D>
    where\n T: Element,\n D: Dimension,
    "]] +"numpy":[["impl Deref for PyUntypedArray"],["impl<'py, T, D> Deref for PyReadwriteArray<'py, T, D>
    where\n T: Element,\n D: Dimension,
    "],["impl Deref for PyArrayDescr"],["impl<T, D> Deref for PyArray<T, D>"],["impl<'py, T, D, C> Deref for PyArrayLike<'py, T, D, C>
    where\n T: Element,\n D: Dimension,\n C: Coerce,
    "],["impl<'py, T, D> Deref for PyReadonlyArray<'py, T, D>
    where\n T: Element,\n D: Dimension,
    "]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/core/ops/drop/trait.Drop.js b/trait.impl/core/ops/drop/trait.Drop.js index 2348fea2e..0cfed0c17 100644 --- a/trait.impl/core/ops/drop/trait.Drop.js +++ b/trait.impl/core/ops/drop/trait.Drop.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"numpy":[["impl<'a, T, D> Drop for PyReadonlyArray<'a, T, D>
    where\n T: Element,\n D: Dimension,
    "],["impl<'a, T, D> Drop for PyReadwriteArray<'a, T, D>
    where\n T: Element,\n D: Dimension,
    "]] +"numpy":[["impl<'a, T, D> Drop for PyReadwriteArray<'a, T, D>
    where\n T: Element,\n D: Dimension,
    "],["impl<'a, T, D> Drop for PyReadonlyArray<'a, T, D>
    where\n T: Element,\n D: Dimension,
    "]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/numpy/dtype/trait.PyArrayDescrMethods.js b/trait.impl/numpy/dtype/trait.PyArrayDescrMethods.js new file mode 100644 index 000000000..debd9339b --- /dev/null +++ b/trait.impl/numpy/dtype/trait.PyArrayDescrMethods.js @@ -0,0 +1,3 @@ +(function() {var implementors = { +"numpy":[] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/pyo3/conversion/trait.AsPyPointer.js b/trait.impl/pyo3/conversion/trait.AsPyPointer.js index 9e10aa27d..03b6da351 100644 --- a/trait.impl/pyo3/conversion/trait.AsPyPointer.js +++ b/trait.impl/pyo3/conversion/trait.AsPyPointer.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"numpy":[["impl AsPyPointer for PyUntypedArray"],["impl<T, D> AsPyPointer for PyArray<T, D>"],["impl AsPyPointer for PyArrayDescr"]] +"numpy":[["impl AsPyPointer for PyArrayDescr"],["impl<T, D> AsPyPointer for PyArray<T, D>"],["impl AsPyPointer for PyUntypedArray"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/pyo3/conversion/trait.FromPyObject.js b/trait.impl/pyo3/conversion/trait.FromPyObject.js index 7b25612c2..6850ed279 100644 --- a/trait.impl/pyo3/conversion/trait.FromPyObject.js +++ b/trait.impl/pyo3/conversion/trait.FromPyObject.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"numpy":[["impl<'py> FromPyObject<'py> for &'py PyArrayDescr"],["impl<'py> FromPyObject<'py> for &'py PyUntypedArray"],["impl<'py, T: Element, D: Dimension> FromPyObject<'py> for &'py PyArray<T, D>"],["impl<'py, T: Element, D: Dimension> FromPyObject<'py> for PyReadwriteArray<'py, T, D>"],["impl<'py, T, D, C> FromPyObject<'py> for PyArrayLike<'py, T, D, C>
    where\n T: Element,\n D: Dimension,\n C: Coerce,\n Vec<T>: FromPyObject<'py>,
    "],["impl<'py, T: Element, D: Dimension> FromPyObject<'py> for PyReadonlyArray<'py, T, D>"]] +"numpy":[["impl<'py, T: Element, D: Dimension> FromPyObject<'py> for PyReadonlyArray<'py, T, D>"],["impl<'py, T, D, C> FromPyObject<'py> for PyArrayLike<'py, T, D, C>
    where\n T: Element,\n D: Dimension,\n C: Coerce,\n Vec<T>: FromPyObject<'py>,
    "],["impl<'py, T: Element, D: Dimension> FromPyObject<'py> for &'py PyArray<T, D>"],["impl<'py> FromPyObject<'py> for &'py PyUntypedArray"],["impl<'py> FromPyObject<'py> for &'py PyArrayDescr"],["impl<'py, T: Element, D: Dimension> FromPyObject<'py> for PyReadwriteArray<'py, T, D>"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/pyo3/conversion/trait.IntoPy.js b/trait.impl/pyo3/conversion/trait.IntoPy.js index 09aa8be0d..2d933acf3 100644 --- a/trait.impl/pyo3/conversion/trait.IntoPy.js +++ b/trait.impl/pyo3/conversion/trait.IntoPy.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"numpy":[["impl<T, D> IntoPy<Py<PyAny>> for PyArray<T, D>"],["impl IntoPy<Py<PyArrayDescr>> for &PyArrayDescr"],["impl IntoPy<Py<PyAny>> for PyUntypedArray"],["impl IntoPy<Py<PyUntypedArray>> for &PyUntypedArray"],["impl<T, D> IntoPy<Py<PyArray<T, D>>> for &PyArray<T, D>"]] +"numpy":[["impl<T, D> IntoPy<Py<PyArray<T, D>>> for &PyArray<T, D>"],["impl<T, D> IntoPy<Py<PyAny>> for PyArray<T, D>"],["impl IntoPy<Py<PyUntypedArray>> for &PyUntypedArray"],["impl IntoPy<Py<PyAny>> for PyUntypedArray"],["impl IntoPy<Py<PyArrayDescr>> for &PyArrayDescr"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/pyo3/conversion/trait.ToPyObject.js b/trait.impl/pyo3/conversion/trait.ToPyObject.js index e355805ab..dc1c02551 100644 --- a/trait.impl/pyo3/conversion/trait.ToPyObject.js +++ b/trait.impl/pyo3/conversion/trait.ToPyObject.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"numpy":[["impl<T, D> ToPyObject for PyArray<T, D>"],["impl ToPyObject for PyUntypedArray"],["impl ToPyObject for PyArrayDescr"]] +"numpy":[["impl ToPyObject for PyArrayDescr"],["impl<T, D> ToPyObject for PyArray<T, D>"],["impl ToPyObject for PyUntypedArray"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/pyo3/err/err_state/trait.PyErrArguments.js b/trait.impl/pyo3/err/err_state/trait.PyErrArguments.js index 05c869e7e..8307fd9c6 100644 --- a/trait.impl/pyo3/err/err_state/trait.PyErrArguments.js +++ b/trait.impl/pyo3/err/err_state/trait.PyErrArguments.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"numpy":[["impl PyErrArguments for BorrowError"],["impl PyErrArguments for FromVecError"],["impl PyErrArguments for NotContiguousError"]] +"numpy":[["impl PyErrArguments for FromVecError"],["impl PyErrArguments for BorrowError"],["impl PyErrArguments for NotContiguousError"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/pyo3/type_object/trait.PyTypeInfo.js b/trait.impl/pyo3/type_object/trait.PyTypeInfo.js index f25716728..ec934509b 100644 --- a/trait.impl/pyo3/type_object/trait.PyTypeInfo.js +++ b/trait.impl/pyo3/type_object/trait.PyTypeInfo.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"numpy":[["impl<T: Element, D: Dimension> PyTypeInfo for PyArray<T, D>"],["impl PyTypeInfo for PyUntypedArray"],["impl PyTypeInfo for PyArrayDescr"]] +"numpy":[["impl<T: Element, D: Dimension> PyTypeInfo for PyArray<T, D>"],["impl PyTypeInfo for PyArrayDescr"],["impl PyTypeInfo for PyUntypedArray"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/pyo3/types/trait.DerefToPyAny.js b/trait.impl/pyo3/types/trait.DerefToPyAny.js index ebd7cb552..c8e3b4e8b 100644 --- a/trait.impl/pyo3/types/trait.DerefToPyAny.js +++ b/trait.impl/pyo3/types/trait.DerefToPyAny.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"numpy":[["impl DerefToPyAny for PyUntypedArray"],["impl DerefToPyAny for PyArrayDescr"],["impl<T, D> DerefToPyAny for PyArray<T, D>"]] +"numpy":[["impl<T, D> DerefToPyAny for PyArray<T, D>"],["impl DerefToPyAny for PyUntypedArray"],["impl DerefToPyAny for PyArrayDescr"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/type.impl/core/option/enum.Option.js b/type.impl/core/option/enum.Option.js index 4ed0fb7c0..76b1e8d4d 100644 --- a/type.impl/core/option/enum.Option.js +++ b/type.impl/core/option/enum.Option.js @@ -1,3 +1,3 @@ (function() {var type_impls = { -"numpy":[["
    source§

    impl<T> Option<T>

    1.0.0 (const: 1.48.0) · source

    pub const fn is_some(&self) -> bool

    Returns true if the option is a Some value.

    \n
    Examples
    \n
    let x: Option<u32> = Some(2);\nassert_eq!(x.is_some(), true);\n\nlet x: Option<u32> = None;\nassert_eq!(x.is_some(), false);
    \n
    1.70.0 · source

    pub fn is_some_and(self, f: impl FnOnce(T) -> bool) -> bool

    Returns true if the option is a Some and the value inside of it matches a predicate.

    \n
    Examples
    \n
    let x: Option<u32> = Some(2);\nassert_eq!(x.is_some_and(|x| x > 1), true);\n\nlet x: Option<u32> = Some(0);\nassert_eq!(x.is_some_and(|x| x > 1), false);\n\nlet x: Option<u32> = None;\nassert_eq!(x.is_some_and(|x| x > 1), false);
    \n
    1.0.0 (const: 1.48.0) · source

    pub const fn is_none(&self) -> bool

    Returns true if the option is a None value.

    \n
    Examples
    \n
    let x: Option<u32> = Some(2);\nassert_eq!(x.is_none(), false);\n\nlet x: Option<u32> = None;\nassert_eq!(x.is_none(), true);
    \n
    1.0.0 (const: 1.48.0) · source

    pub const fn as_ref(&self) -> Option<&T>

    Converts from &Option<T> to Option<&T>.

    \n
    Examples
    \n

    Calculates the length of an Option<String> as an Option<usize>\nwithout moving the String. The map method takes the self argument by value,\nconsuming the original, so this technique uses as_ref to first take an Option to a\nreference to the value inside the original.

    \n\n
    let text: Option<String> = Some(\"Hello, world!\".to_string());\n// First, cast `Option<String>` to `Option<&String>` with `as_ref`,\n// then consume *that* with `map`, leaving `text` on the stack.\nlet text_length: Option<usize> = text.as_ref().map(|s| s.len());\nprintln!(\"still can print text: {text:?}\");
    \n
    1.0.0 (const: unstable) · source

    pub fn as_mut(&mut self) -> Option<&mut T>

    Converts from &mut Option<T> to Option<&mut T>.

    \n
    Examples
    \n
    let mut x = Some(2);\nmatch x.as_mut() {\n    Some(v) => *v = 42,\n    None => {},\n}\nassert_eq!(x, Some(42));
    \n
    1.33.0 (const: unstable) · source

    pub fn as_pin_ref(self: Pin<&Option<T>>) -> Option<Pin<&T>>

    Converts from Pin<&Option<T>> to Option<Pin<&T>>.

    \n
    1.33.0 (const: unstable) · source

    pub fn as_pin_mut(self: Pin<&mut Option<T>>) -> Option<Pin<&mut T>>

    Converts from Pin<&mut Option<T>> to Option<Pin<&mut T>>.

    \n
    1.75.0 · source

    pub fn as_slice(&self) -> &[T]

    Returns a slice of the contained value, if any. If this is None, an\nempty slice is returned. This can be useful to have a single type of\niterator over an Option or slice.

    \n

    Note: Should you have an Option<&T> and wish to get a slice of T,\nyou can unpack it via opt.map_or(&[], std::slice::from_ref).

    \n
    Examples
    \n
    assert_eq!(\n    [Some(1234).as_slice(), None.as_slice()],\n    [&[1234][..], &[][..]],\n);
    \n

    The inverse of this function is (discounting\nborrowing) [_]::first:

    \n\n
    for i in [Some(1234_u16), None] {\n    assert_eq!(i.as_ref(), i.as_slice().first());\n}
    \n
    1.75.0 · source

    pub fn as_mut_slice(&mut self) -> &mut [T]

    Returns a mutable slice of the contained value, if any. If this is\nNone, an empty slice is returned. This can be useful to have a\nsingle type of iterator over an Option or slice.

    \n

    Note: Should you have an Option<&mut T> instead of a\n&mut Option<T>, which this method takes, you can obtain a mutable\nslice via opt.map_or(&mut [], std::slice::from_mut).

    \n
    Examples
    \n
    assert_eq!(\n    [Some(1234).as_mut_slice(), None.as_mut_slice()],\n    [&mut [1234][..], &mut [][..]],\n);
    \n

    The result is a mutable slice of zero or one items that points into\nour original Option:

    \n\n
    let mut x = Some(1234);\nx.as_mut_slice()[0] += 1;\nassert_eq!(x, Some(1235));
    \n

    The inverse of this method (discounting borrowing)\nis [_]::first_mut:

    \n\n
    assert_eq!(Some(123).as_mut_slice().first_mut(), Some(&mut 123))
    \n
    1.0.0 (const: unstable) · source

    pub fn expect(self, msg: &str) -> T

    Returns the contained Some value, consuming the self value.

    \n
    Panics
    \n

    Panics if the value is a None with a custom panic message provided by\nmsg.

    \n
    Examples
    \n
    let x = Some(\"value\");\nassert_eq!(x.expect(\"fruits are healthy\"), \"value\");
    \n\n
    let x: Option<&str> = None;\nx.expect(\"fruits are healthy\"); // panics with `fruits are healthy`
    \n
    Recommended Message Style
    \n

    We recommend that expect messages are used to describe the reason you\nexpect the Option should be Some.

    \n\n
    let item = slice.get(0)\n    .expect(\"slice should not be empty\");
    \n

    Hint: If you’re having trouble remembering how to phrase expect\nerror messages remember to focus on the word “should” as in “env\nvariable should be set by blah” or “the given binary should be available\nand executable by the current user”.

    \n

    For more detail on expect message styles and the reasoning behind our\nrecommendation please refer to the section on “Common Message\nStyles” in the std::error module docs.

    \n
    1.0.0 (const: unstable) · source

    pub fn unwrap(self) -> T

    Returns the contained Some value, consuming the self value.

    \n

    Because this function may panic, its use is generally discouraged.\nInstead, prefer to use pattern matching and handle the None\ncase explicitly, or call unwrap_or, unwrap_or_else, or\nunwrap_or_default.

    \n
    Panics
    \n

    Panics if the self value equals None.

    \n
    Examples
    \n
    let x = Some(\"air\");\nassert_eq!(x.unwrap(), \"air\");
    \n\n
    let x: Option<&str> = None;\nassert_eq!(x.unwrap(), \"air\"); // fails
    \n
    1.0.0 · source

    pub fn unwrap_or(self, default: T) -> T

    Returns the contained Some value or a provided default.

    \n

    Arguments passed to unwrap_or are eagerly evaluated; if you are passing\nthe result of a function call, it is recommended to use unwrap_or_else,\nwhich is lazily evaluated.

    \n
    Examples
    \n
    assert_eq!(Some(\"car\").unwrap_or(\"bike\"), \"car\");\nassert_eq!(None.unwrap_or(\"bike\"), \"bike\");
    \n
    1.0.0 · source

    pub fn unwrap_or_else<F>(self, f: F) -> T
    where\n F: FnOnce() -> T,

    Returns the contained Some value or computes it from a closure.

    \n
    Examples
    \n
    let k = 10;\nassert_eq!(Some(4).unwrap_or_else(|| 2 * k), 4);\nassert_eq!(None.unwrap_or_else(|| 2 * k), 20);
    \n
    1.0.0 · source

    pub fn unwrap_or_default(self) -> T
    where\n T: Default,

    Returns the contained Some value or a default.

    \n

    Consumes the self argument then, if Some, returns the contained\nvalue, otherwise if None, returns the default value for that\ntype.

    \n
    Examples
    \n
    let x: Option<u32> = None;\nlet y: Option<u32> = Some(12);\n\nassert_eq!(x.unwrap_or_default(), 0);\nassert_eq!(y.unwrap_or_default(), 12);
    \n
    1.58.0 (const: unstable) · source

    pub unsafe fn unwrap_unchecked(self) -> T

    Returns the contained Some value, consuming the self value,\nwithout checking that the value is not None.

    \n
    Safety
    \n

    Calling this method on None is undefined behavior.

    \n
    Examples
    \n
    let x = Some(\"air\");\nassert_eq!(unsafe { x.unwrap_unchecked() }, \"air\");
    \n\n
    let x: Option<&str> = None;\nassert_eq!(unsafe { x.unwrap_unchecked() }, \"air\"); // Undefined behavior!
    \n
    1.0.0 · source

    pub fn map<U, F>(self, f: F) -> Option<U>
    where\n F: FnOnce(T) -> U,

    Maps an Option<T> to Option<U> by applying a function to a contained value (if Some) or returns None (if None).

    \n
    Examples
    \n

    Calculates the length of an Option<String> as an\nOption<usize>, consuming the original:

    \n\n
    let maybe_some_string = Some(String::from(\"Hello, World!\"));\n// `Option::map` takes self *by value*, consuming `maybe_some_string`\nlet maybe_some_len = maybe_some_string.map(|s| s.len());\nassert_eq!(maybe_some_len, Some(13));\n\nlet x: Option<&str> = None;\nassert_eq!(x.map(|s| s.len()), None);
    \n
    1.76.0 · source

    pub fn inspect<F>(self, f: F) -> Option<T>
    where\n F: FnOnce(&T),

    Calls the provided closure with a reference to the contained value (if Some).

    \n
    Examples
    \n
    let v = vec![1, 2, 3, 4, 5];\n\n// prints \"got: 4\"\nlet x: Option<&usize> = v.get(3).inspect(|x| println!(\"got: {x}\"));\n\n// prints nothing\nlet x: Option<&usize> = v.get(5).inspect(|x| println!(\"got: {x}\"));
    \n
    1.0.0 · source

    pub fn map_or<U, F>(self, default: U, f: F) -> U
    where\n F: FnOnce(T) -> U,

    Returns the provided default result (if none),\nor applies a function to the contained value (if any).

    \n

    Arguments passed to map_or are eagerly evaluated; if you are passing\nthe result of a function call, it is recommended to use map_or_else,\nwhich is lazily evaluated.

    \n
    Examples
    \n
    let x = Some(\"foo\");\nassert_eq!(x.map_or(42, |v| v.len()), 3);\n\nlet x: Option<&str> = None;\nassert_eq!(x.map_or(42, |v| v.len()), 42);
    \n
    1.0.0 · source

    pub fn map_or_else<U, D, F>(self, default: D, f: F) -> U
    where\n D: FnOnce() -> U,\n F: FnOnce(T) -> U,

    Computes a default function result (if none), or\napplies a different function to the contained value (if any).

    \n
    Basic examples
    \n
    let k = 21;\n\nlet x = Some(\"foo\");\nassert_eq!(x.map_or_else(|| 2 * k, |v| v.len()), 3);\n\nlet x: Option<&str> = None;\nassert_eq!(x.map_or_else(|| 2 * k, |v| v.len()), 42);
    \n
    Handling a Result-based fallback
    \n

    A somewhat common occurrence when dealing with optional values\nin combination with Result<T, E> is the case where one wants to invoke\na fallible fallback if the option is not present. This example\nparses a command line argument (if present), or the contents of a file to\nan integer. However, unlike accessing the command line argument, reading\nthe file is fallible, so it must be wrapped with Ok.

    \n\n
    let v: u64 = std::env::args()\n   .nth(1)\n   .map_or_else(|| std::fs::read_to_string(\"/etc/someconfig.conf\"), Ok)?\n   .parse()?;
    \n
    1.0.0 · source

    pub fn ok_or<E>(self, err: E) -> Result<T, E>

    Transforms the Option<T> into a Result<T, E>, mapping Some(v) to\nOk(v) and None to Err(err).

    \n

    Arguments passed to ok_or are eagerly evaluated; if you are passing the\nresult of a function call, it is recommended to use ok_or_else, which is\nlazily evaluated.

    \n
    Examples
    \n
    let x = Some(\"foo\");\nassert_eq!(x.ok_or(0), Ok(\"foo\"));\n\nlet x: Option<&str> = None;\nassert_eq!(x.ok_or(0), Err(0));
    \n
    1.0.0 · source

    pub fn ok_or_else<E, F>(self, err: F) -> Result<T, E>
    where\n F: FnOnce() -> E,

    Transforms the Option<T> into a Result<T, E>, mapping Some(v) to\nOk(v) and None to Err(err()).

    \n
    Examples
    \n
    let x = Some(\"foo\");\nassert_eq!(x.ok_or_else(|| 0), Ok(\"foo\"));\n\nlet x: Option<&str> = None;\nassert_eq!(x.ok_or_else(|| 0), Err(0));
    \n
    1.40.0 · source

    pub fn as_deref(&self) -> Option<&<T as Deref>::Target>
    where\n T: Deref,

    Converts from Option<T> (or &Option<T>) to Option<&T::Target>.

    \n

    Leaves the original Option in-place, creating a new one with a reference\nto the original one, additionally coercing the contents via Deref.

    \n
    Examples
    \n
    let x: Option<String> = Some(\"hey\".to_owned());\nassert_eq!(x.as_deref(), Some(\"hey\"));\n\nlet x: Option<String> = None;\nassert_eq!(x.as_deref(), None);
    \n
    1.40.0 · source

    pub fn as_deref_mut(&mut self) -> Option<&mut <T as Deref>::Target>
    where\n T: DerefMut,

    Converts from Option<T> (or &mut Option<T>) to Option<&mut T::Target>.

    \n

    Leaves the original Option in-place, creating a new one containing a mutable reference to\nthe inner type’s Deref::Target type.

    \n
    Examples
    \n
    let mut x: Option<String> = Some(\"hey\".to_owned());\nassert_eq!(x.as_deref_mut().map(|x| {\n    x.make_ascii_uppercase();\n    x\n}), Some(\"HEY\".to_owned().as_mut_str()));
    \n
    1.0.0 (const: unstable) · source

    pub fn iter(&self) -> Iter<'_, T>

    Returns an iterator over the possibly contained value.

    \n
    Examples
    \n
    let x = Some(4);\nassert_eq!(x.iter().next(), Some(&4));\n\nlet x: Option<u32> = None;\nassert_eq!(x.iter().next(), None);
    \n
    1.0.0 · source

    pub fn iter_mut(&mut self) -> IterMut<'_, T>

    Returns a mutable iterator over the possibly contained value.

    \n
    Examples
    \n
    let mut x = Some(4);\nmatch x.iter_mut().next() {\n    Some(v) => *v = 42,\n    None => {},\n}\nassert_eq!(x, Some(42));\n\nlet mut x: Option<u32> = None;\nassert_eq!(x.iter_mut().next(), None);
    \n
    1.0.0 · source

    pub fn and<U>(self, optb: Option<U>) -> Option<U>

    Returns None if the option is None, otherwise returns optb.

    \n

    Arguments passed to and are eagerly evaluated; if you are passing the\nresult of a function call, it is recommended to use and_then, which is\nlazily evaluated.

    \n
    Examples
    \n
    let x = Some(2);\nlet y: Option<&str> = None;\nassert_eq!(x.and(y), None);\n\nlet x: Option<u32> = None;\nlet y = Some(\"foo\");\nassert_eq!(x.and(y), None);\n\nlet x = Some(2);\nlet y = Some(\"foo\");\nassert_eq!(x.and(y), Some(\"foo\"));\n\nlet x: Option<u32> = None;\nlet y: Option<&str> = None;\nassert_eq!(x.and(y), None);
    \n
    1.0.0 · source

    pub fn and_then<U, F>(self, f: F) -> Option<U>
    where\n F: FnOnce(T) -> Option<U>,

    Returns None if the option is None, otherwise calls f with the\nwrapped value and returns the result.

    \n

    Some languages call this operation flatmap.

    \n
    Examples
    \n
    fn sq_then_to_string(x: u32) -> Option<String> {\n    x.checked_mul(x).map(|sq| sq.to_string())\n}\n\nassert_eq!(Some(2).and_then(sq_then_to_string), Some(4.to_string()));\nassert_eq!(Some(1_000_000).and_then(sq_then_to_string), None); // overflowed!\nassert_eq!(None.and_then(sq_then_to_string), None);
    \n

    Often used to chain fallible operations that may return None.

    \n\n
    let arr_2d = [[\"A0\", \"A1\"], [\"B0\", \"B1\"]];\n\nlet item_0_1 = arr_2d.get(0).and_then(|row| row.get(1));\nassert_eq!(item_0_1, Some(&\"A1\"));\n\nlet item_2_0 = arr_2d.get(2).and_then(|row| row.get(0));\nassert_eq!(item_2_0, None);
    \n
    1.27.0 · source

    pub fn filter<P>(self, predicate: P) -> Option<T>
    where\n P: FnOnce(&T) -> bool,

    Returns None if the option is None, otherwise calls predicate\nwith the wrapped value and returns:

    \n
      \n
    • Some(t) if predicate returns true (where t is the wrapped\nvalue), and
    • \n
    • None if predicate returns false.
    • \n
    \n

    This function works similar to Iterator::filter(). You can imagine\nthe Option<T> being an iterator over one or zero elements. filter()\nlets you decide which elements to keep.

    \n
    Examples
    \n
    fn is_even(n: &i32) -> bool {\n    n % 2 == 0\n}\n\nassert_eq!(None.filter(is_even), None);\nassert_eq!(Some(3).filter(is_even), None);\nassert_eq!(Some(4).filter(is_even), Some(4));
    \n
    1.0.0 · source

    pub fn or(self, optb: Option<T>) -> Option<T>

    Returns the option if it contains a value, otherwise returns optb.

    \n

    Arguments passed to or are eagerly evaluated; if you are passing the\nresult of a function call, it is recommended to use or_else, which is\nlazily evaluated.

    \n
    Examples
    \n
    let x = Some(2);\nlet y = None;\nassert_eq!(x.or(y), Some(2));\n\nlet x = None;\nlet y = Some(100);\nassert_eq!(x.or(y), Some(100));\n\nlet x = Some(2);\nlet y = Some(100);\nassert_eq!(x.or(y), Some(2));\n\nlet x: Option<u32> = None;\nlet y = None;\nassert_eq!(x.or(y), None);
    \n
    1.0.0 · source

    pub fn or_else<F>(self, f: F) -> Option<T>
    where\n F: FnOnce() -> Option<T>,

    Returns the option if it contains a value, otherwise calls f and\nreturns the result.

    \n
    Examples
    \n
    fn nobody() -> Option<&'static str> { None }\nfn vikings() -> Option<&'static str> { Some(\"vikings\") }\n\nassert_eq!(Some(\"barbarians\").or_else(vikings), Some(\"barbarians\"));\nassert_eq!(None.or_else(vikings), Some(\"vikings\"));\nassert_eq!(None.or_else(nobody), None);
    \n
    1.37.0 · source

    pub fn xor(self, optb: Option<T>) -> Option<T>

    Returns Some if exactly one of self, optb is Some, otherwise returns None.

    \n
    Examples
    \n
    let x = Some(2);\nlet y: Option<u32> = None;\nassert_eq!(x.xor(y), Some(2));\n\nlet x: Option<u32> = None;\nlet y = Some(2);\nassert_eq!(x.xor(y), Some(2));\n\nlet x = Some(2);\nlet y = Some(2);\nassert_eq!(x.xor(y), None);\n\nlet x: Option<u32> = None;\nlet y: Option<u32> = None;\nassert_eq!(x.xor(y), None);
    \n
    1.53.0 · source

    pub fn insert(&mut self, value: T) -> &mut T

    Inserts value into the option, then returns a mutable reference to it.

    \n

    If the option already contains a value, the old value is dropped.

    \n

    See also Option::get_or_insert, which doesn’t update the value if\nthe option already contains Some.

    \n
    Example
    \n
    let mut opt = None;\nlet val = opt.insert(1);\nassert_eq!(*val, 1);\nassert_eq!(opt.unwrap(), 1);\nlet val = opt.insert(2);\nassert_eq!(*val, 2);\n*val = 3;\nassert_eq!(opt.unwrap(), 3);
    \n
    1.20.0 · source

    pub fn get_or_insert(&mut self, value: T) -> &mut T

    Inserts value into the option if it is None, then\nreturns a mutable reference to the contained value.

    \n

    See also Option::insert, which updates the value even if\nthe option already contains Some.

    \n
    Examples
    \n
    let mut x = None;\n\n{\n    let y: &mut u32 = x.get_or_insert(5);\n    assert_eq!(y, &5);\n\n    *y = 7;\n}\n\nassert_eq!(x, Some(7));
    \n
    source

    pub fn get_or_insert_default(&mut self) -> &mut T
    where\n T: Default,

    🔬This is a nightly-only experimental API. (option_get_or_insert_default)

    Inserts the default value into the option if it is None, then\nreturns a mutable reference to the contained value.

    \n
    Examples
    \n
    #![feature(option_get_or_insert_default)]\n\nlet mut x = None;\n\n{\n    let y: &mut u32 = x.get_or_insert_default();\n    assert_eq!(y, &0);\n\n    *y = 7;\n}\n\nassert_eq!(x, Some(7));
    \n
    1.20.0 · source

    pub fn get_or_insert_with<F>(&mut self, f: F) -> &mut T
    where\n F: FnOnce() -> T,

    Inserts a value computed from f into the option if it is None,\nthen returns a mutable reference to the contained value.

    \n
    Examples
    \n
    let mut x = None;\n\n{\n    let y: &mut u32 = x.get_or_insert_with(|| 5);\n    assert_eq!(y, &5);\n\n    *y = 7;\n}\n\nassert_eq!(x, Some(7));
    \n
    1.0.0 (const: unstable) · source

    pub fn take(&mut self) -> Option<T>

    Takes the value out of the option, leaving a None in its place.

    \n
    Examples
    \n
    let mut x = Some(2);\nlet y = x.take();\nassert_eq!(x, None);\nassert_eq!(y, Some(2));\n\nlet mut x: Option<u32> = None;\nlet y = x.take();\nassert_eq!(x, None);\nassert_eq!(y, None);
    \n
    source

    pub fn take_if<P>(&mut self, predicate: P) -> Option<T>
    where\n P: FnOnce(&mut T) -> bool,

    🔬This is a nightly-only experimental API. (option_take_if)

    Takes the value out of the option, but only if the predicate evaluates to\ntrue on a mutable reference to the value.

    \n

    In other words, replaces self with None if the predicate returns true.\nThis method operates similar to Option::take but conditional.

    \n
    Examples
    \n
    #![feature(option_take_if)]\n\nlet mut x = Some(42);\n\nlet prev = x.take_if(|v| if *v == 42 {\n    *v += 1;\n    false\n} else {\n    false\n});\nassert_eq!(x, Some(43));\nassert_eq!(prev, None);\n\nlet prev = x.take_if(|v| *v == 43);\nassert_eq!(x, None);\nassert_eq!(prev, Some(43));
    \n
    1.31.0 (const: unstable) · source

    pub fn replace(&mut self, value: T) -> Option<T>

    Replaces the actual value in the option by the value given in parameter,\nreturning the old value if present,\nleaving a Some in its place without deinitializing either one.

    \n
    Examples
    \n
    let mut x = Some(2);\nlet old = x.replace(5);\nassert_eq!(x, Some(5));\nassert_eq!(old, Some(2));\n\nlet mut x = None;\nlet old = x.replace(3);\nassert_eq!(x, Some(3));\nassert_eq!(old, None);
    \n
    1.46.0 · source

    pub fn zip<U>(self, other: Option<U>) -> Option<(T, U)>

    Zips self with another Option.

    \n

    If self is Some(s) and other is Some(o), this method returns Some((s, o)).\nOtherwise, None is returned.

    \n
    Examples
    \n
    let x = Some(1);\nlet y = Some(\"hi\");\nlet z = None::<u8>;\n\nassert_eq!(x.zip(y), Some((1, \"hi\")));\nassert_eq!(x.zip(z), None);
    \n
    source

    pub fn zip_with<U, F, R>(self, other: Option<U>, f: F) -> Option<R>
    where\n F: FnOnce(T, U) -> R,

    🔬This is a nightly-only experimental API. (option_zip)

    Zips self and another Option with function f.

    \n

    If self is Some(s) and other is Some(o), this method returns Some(f(s, o)).\nOtherwise, None is returned.

    \n
    Examples
    \n
    #![feature(option_zip)]\n\n#[derive(Debug, PartialEq)]\nstruct Point {\n    x: f64,\n    y: f64,\n}\n\nimpl Point {\n    fn new(x: f64, y: f64) -> Self {\n        Self { x, y }\n    }\n}\n\nlet x = Some(17.5);\nlet y = Some(42.7);\n\nassert_eq!(x.zip_with(y, Point::new), Some(Point { x: 17.5, y: 42.7 }));\nassert_eq!(x.zip_with(None, Point::new), None);
    \n
    ",0,"numpy::npyffi::objects::PyArray_GetItemFunc","numpy::npyffi::objects::PyArray_SetItemFunc","numpy::npyffi::objects::PyArray_CopySwapNFunc","numpy::npyffi::objects::PyArray_CopySwapFunc","numpy::npyffi::objects::PyArray_NonzeroFunc","numpy::npyffi::objects::PyArray_CompareFunc","numpy::npyffi::objects::PyArray_ArgFunc","numpy::npyffi::objects::PyArray_DotFunc","numpy::npyffi::objects::PyArray_VectorUnaryFunc","numpy::npyffi::objects::PyArray_ScanFunc","numpy::npyffi::objects::PyArray_FromStrFunc","numpy::npyffi::objects::PyArray_FillFunc","numpy::npyffi::objects::PyArray_SortFunc","numpy::npyffi::objects::PyArray_ArgSortFunc","numpy::npyffi::objects::PyArray_PartitionFunc","numpy::npyffi::objects::PyArray_ArgPartitionFunc","numpy::npyffi::objects::PyArray_FillWithScalarFunc","numpy::npyffi::objects::PyArray_ScalarKindFunc","numpy::npyffi::objects::PyArray_FastClipFunc","numpy::npyffi::objects::PyArray_FastPutmaskFunc","numpy::npyffi::objects::PyArray_FastTakeFunc","numpy::npyffi::objects::PyUFuncGenericFunction","numpy::npyffi::objects::PyUFunc_MaskedStridedInnerLoopFunc","numpy::npyffi::objects::PyUFunc_TypeResolutionFunc","numpy::npyffi::objects::PyUFunc_LegacyInnerLoopSelectionFunc","numpy::npyffi::objects::PyUFunc_MaskedInnerLoopSelectionFunc","numpy::npyffi::objects::NpyIter_IterNextFunc","numpy::npyffi::objects::NpyIter_GetMultiIndexFunc","numpy::npyffi::objects::PyDataMem_EventHookFunc","numpy::npyffi::objects::npy_iter_get_dataptr_t","numpy::npyffi::objects::NpyAuxData_FreeFunc","numpy::npyffi::objects::NpyAuxData_CloneFunc"],["
    1.0.0 · source§

    impl<T> PartialOrd for Option<T>
    where\n T: PartialOrd,

    source§

    fn partial_cmp(&self, other: &Option<T>) -> Option<Ordering>

    This method returns an ordering between self and other values if one exists. Read more
    1.0.0 · source§

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

    This method tests less than (for self and other) and is used by the < operator. Read more
    1.0.0 · source§

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

    This method tests less than or equal to (for self and other) and is used by the <=\noperator. Read more
    1.0.0 · source§

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

    This method tests greater than (for self and other) and is used by the > operator. Read more
    1.0.0 · source§

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

    This method tests greater than or equal to (for self and other) and is used by the >=\noperator. Read more
    ","PartialOrd","numpy::npyffi::objects::PyArray_GetItemFunc","numpy::npyffi::objects::PyArray_SetItemFunc","numpy::npyffi::objects::PyArray_CopySwapNFunc","numpy::npyffi::objects::PyArray_CopySwapFunc","numpy::npyffi::objects::PyArray_NonzeroFunc","numpy::npyffi::objects::PyArray_CompareFunc","numpy::npyffi::objects::PyArray_ArgFunc","numpy::npyffi::objects::PyArray_DotFunc","numpy::npyffi::objects::PyArray_VectorUnaryFunc","numpy::npyffi::objects::PyArray_ScanFunc","numpy::npyffi::objects::PyArray_FromStrFunc","numpy::npyffi::objects::PyArray_FillFunc","numpy::npyffi::objects::PyArray_SortFunc","numpy::npyffi::objects::PyArray_ArgSortFunc","numpy::npyffi::objects::PyArray_PartitionFunc","numpy::npyffi::objects::PyArray_ArgPartitionFunc","numpy::npyffi::objects::PyArray_FillWithScalarFunc","numpy::npyffi::objects::PyArray_ScalarKindFunc","numpy::npyffi::objects::PyArray_FastClipFunc","numpy::npyffi::objects::PyArray_FastPutmaskFunc","numpy::npyffi::objects::PyArray_FastTakeFunc","numpy::npyffi::objects::PyUFuncGenericFunction","numpy::npyffi::objects::PyUFunc_MaskedStridedInnerLoopFunc","numpy::npyffi::objects::PyUFunc_TypeResolutionFunc","numpy::npyffi::objects::PyUFunc_LegacyInnerLoopSelectionFunc","numpy::npyffi::objects::PyUFunc_MaskedInnerLoopSelectionFunc","numpy::npyffi::objects::NpyIter_IterNextFunc","numpy::npyffi::objects::NpyIter_GetMultiIndexFunc","numpy::npyffi::objects::PyDataMem_EventHookFunc","numpy::npyffi::objects::npy_iter_get_dataptr_t","numpy::npyffi::objects::NpyAuxData_FreeFunc","numpy::npyffi::objects::NpyAuxData_CloneFunc"],["
    1.37.0 · source§

    impl<T, U> Product<Option<U>> for Option<T>
    where\n T: Product<U>,

    source§

    fn product<I>(iter: I) -> Option<T>
    where\n I: Iterator<Item = Option<U>>,

    Takes each element in the Iterator: if it is a None, no further\nelements are taken, and the None is returned. Should no None\noccur, the product of all elements is returned.

    \n
    Examples
    \n

    This multiplies each number in a vector of strings,\nif a string could not be parsed the operation returns None:

    \n\n
    let nums = vec![\"5\", \"10\", \"1\", \"2\"];\nlet total: Option<usize> = nums.iter().map(|w| w.parse::<usize>().ok()).product();\nassert_eq!(total, Some(100));\nlet nums = vec![\"5\", \"10\", \"one\", \"2\"];\nlet total: Option<usize> = nums.iter().map(|w| w.parse::<usize>().ok()).product();\nassert_eq!(total, None);
    \n
    ","Product>","numpy::npyffi::objects::PyArray_GetItemFunc","numpy::npyffi::objects::PyArray_SetItemFunc","numpy::npyffi::objects::PyArray_CopySwapNFunc","numpy::npyffi::objects::PyArray_CopySwapFunc","numpy::npyffi::objects::PyArray_NonzeroFunc","numpy::npyffi::objects::PyArray_CompareFunc","numpy::npyffi::objects::PyArray_ArgFunc","numpy::npyffi::objects::PyArray_DotFunc","numpy::npyffi::objects::PyArray_VectorUnaryFunc","numpy::npyffi::objects::PyArray_ScanFunc","numpy::npyffi::objects::PyArray_FromStrFunc","numpy::npyffi::objects::PyArray_FillFunc","numpy::npyffi::objects::PyArray_SortFunc","numpy::npyffi::objects::PyArray_ArgSortFunc","numpy::npyffi::objects::PyArray_PartitionFunc","numpy::npyffi::objects::PyArray_ArgPartitionFunc","numpy::npyffi::objects::PyArray_FillWithScalarFunc","numpy::npyffi::objects::PyArray_ScalarKindFunc","numpy::npyffi::objects::PyArray_FastClipFunc","numpy::npyffi::objects::PyArray_FastPutmaskFunc","numpy::npyffi::objects::PyArray_FastTakeFunc","numpy::npyffi::objects::PyUFuncGenericFunction","numpy::npyffi::objects::PyUFunc_MaskedStridedInnerLoopFunc","numpy::npyffi::objects::PyUFunc_TypeResolutionFunc","numpy::npyffi::objects::PyUFunc_LegacyInnerLoopSelectionFunc","numpy::npyffi::objects::PyUFunc_MaskedInnerLoopSelectionFunc","numpy::npyffi::objects::NpyIter_IterNextFunc","numpy::npyffi::objects::NpyIter_GetMultiIndexFunc","numpy::npyffi::objects::PyDataMem_EventHookFunc","numpy::npyffi::objects::npy_iter_get_dataptr_t","numpy::npyffi::objects::NpyAuxData_FreeFunc","numpy::npyffi::objects::NpyAuxData_CloneFunc"],["
    source§

    impl<T> FromResidual for Option<T>

    source§

    fn from_residual(residual: Option<Infallible>) -> Option<T>

    🔬This is a nightly-only experimental API. (try_trait_v2)
    Constructs the type from a compatible Residual type. Read more
    ","FromResidual","numpy::npyffi::objects::PyArray_GetItemFunc","numpy::npyffi::objects::PyArray_SetItemFunc","numpy::npyffi::objects::PyArray_CopySwapNFunc","numpy::npyffi::objects::PyArray_CopySwapFunc","numpy::npyffi::objects::PyArray_NonzeroFunc","numpy::npyffi::objects::PyArray_CompareFunc","numpy::npyffi::objects::PyArray_ArgFunc","numpy::npyffi::objects::PyArray_DotFunc","numpy::npyffi::objects::PyArray_VectorUnaryFunc","numpy::npyffi::objects::PyArray_ScanFunc","numpy::npyffi::objects::PyArray_FromStrFunc","numpy::npyffi::objects::PyArray_FillFunc","numpy::npyffi::objects::PyArray_SortFunc","numpy::npyffi::objects::PyArray_ArgSortFunc","numpy::npyffi::objects::PyArray_PartitionFunc","numpy::npyffi::objects::PyArray_ArgPartitionFunc","numpy::npyffi::objects::PyArray_FillWithScalarFunc","numpy::npyffi::objects::PyArray_ScalarKindFunc","numpy::npyffi::objects::PyArray_FastClipFunc","numpy::npyffi::objects::PyArray_FastPutmaskFunc","numpy::npyffi::objects::PyArray_FastTakeFunc","numpy::npyffi::objects::PyUFuncGenericFunction","numpy::npyffi::objects::PyUFunc_MaskedStridedInnerLoopFunc","numpy::npyffi::objects::PyUFunc_TypeResolutionFunc","numpy::npyffi::objects::PyUFunc_LegacyInnerLoopSelectionFunc","numpy::npyffi::objects::PyUFunc_MaskedInnerLoopSelectionFunc","numpy::npyffi::objects::NpyIter_IterNextFunc","numpy::npyffi::objects::NpyIter_GetMultiIndexFunc","numpy::npyffi::objects::PyDataMem_EventHookFunc","numpy::npyffi::objects::npy_iter_get_dataptr_t","numpy::npyffi::objects::NpyAuxData_FreeFunc","numpy::npyffi::objects::NpyAuxData_CloneFunc"],["
    source§

    impl<T> FromResidual<Yeet<()>> for Option<T>

    source§

    fn from_residual(_: Yeet<()>) -> Option<T>

    🔬This is a nightly-only experimental API. (try_trait_v2)
    Constructs the type from a compatible Residual type. Read more
    ","FromResidual>","numpy::npyffi::objects::PyArray_GetItemFunc","numpy::npyffi::objects::PyArray_SetItemFunc","numpy::npyffi::objects::PyArray_CopySwapNFunc","numpy::npyffi::objects::PyArray_CopySwapFunc","numpy::npyffi::objects::PyArray_NonzeroFunc","numpy::npyffi::objects::PyArray_CompareFunc","numpy::npyffi::objects::PyArray_ArgFunc","numpy::npyffi::objects::PyArray_DotFunc","numpy::npyffi::objects::PyArray_VectorUnaryFunc","numpy::npyffi::objects::PyArray_ScanFunc","numpy::npyffi::objects::PyArray_FromStrFunc","numpy::npyffi::objects::PyArray_FillFunc","numpy::npyffi::objects::PyArray_SortFunc","numpy::npyffi::objects::PyArray_ArgSortFunc","numpy::npyffi::objects::PyArray_PartitionFunc","numpy::npyffi::objects::PyArray_ArgPartitionFunc","numpy::npyffi::objects::PyArray_FillWithScalarFunc","numpy::npyffi::objects::PyArray_ScalarKindFunc","numpy::npyffi::objects::PyArray_FastClipFunc","numpy::npyffi::objects::PyArray_FastPutmaskFunc","numpy::npyffi::objects::PyArray_FastTakeFunc","numpy::npyffi::objects::PyUFuncGenericFunction","numpy::npyffi::objects::PyUFunc_MaskedStridedInnerLoopFunc","numpy::npyffi::objects::PyUFunc_TypeResolutionFunc","numpy::npyffi::objects::PyUFunc_LegacyInnerLoopSelectionFunc","numpy::npyffi::objects::PyUFunc_MaskedInnerLoopSelectionFunc","numpy::npyffi::objects::NpyIter_IterNextFunc","numpy::npyffi::objects::NpyIter_GetMultiIndexFunc","numpy::npyffi::objects::PyDataMem_EventHookFunc","numpy::npyffi::objects::npy_iter_get_dataptr_t","numpy::npyffi::objects::NpyAuxData_FreeFunc","numpy::npyffi::objects::NpyAuxData_CloneFunc"],["
    source§

    impl<T> Try for Option<T>

    §

    type Output = T

    🔬This is a nightly-only experimental API. (try_trait_v2)
    The type of the value produced by ? when not short-circuiting.
    §

    type Residual = Option<Infallible>

    🔬This is a nightly-only experimental API. (try_trait_v2)
    The type of the value passed to FromResidual::from_residual\nas part of ? when short-circuiting. Read more
    source§

    fn from_output(output: <Option<T> as Try>::Output) -> Option<T>

    🔬This is a nightly-only experimental API. (try_trait_v2)
    Constructs the type from its Output type. Read more
    source§

    fn branch(\n self\n) -> ControlFlow<<Option<T> as Try>::Residual, <Option<T> as Try>::Output>

    🔬This is a nightly-only experimental API. (try_trait_v2)
    Used in ? to decide whether the operator should produce a value\n(because this returned ControlFlow::Continue)\nor propagate a value back to the caller\n(because this returned ControlFlow::Break). Read more
    ","Try","numpy::npyffi::objects::PyArray_GetItemFunc","numpy::npyffi::objects::PyArray_SetItemFunc","numpy::npyffi::objects::PyArray_CopySwapNFunc","numpy::npyffi::objects::PyArray_CopySwapFunc","numpy::npyffi::objects::PyArray_NonzeroFunc","numpy::npyffi::objects::PyArray_CompareFunc","numpy::npyffi::objects::PyArray_ArgFunc","numpy::npyffi::objects::PyArray_DotFunc","numpy::npyffi::objects::PyArray_VectorUnaryFunc","numpy::npyffi::objects::PyArray_ScanFunc","numpy::npyffi::objects::PyArray_FromStrFunc","numpy::npyffi::objects::PyArray_FillFunc","numpy::npyffi::objects::PyArray_SortFunc","numpy::npyffi::objects::PyArray_ArgSortFunc","numpy::npyffi::objects::PyArray_PartitionFunc","numpy::npyffi::objects::PyArray_ArgPartitionFunc","numpy::npyffi::objects::PyArray_FillWithScalarFunc","numpy::npyffi::objects::PyArray_ScalarKindFunc","numpy::npyffi::objects::PyArray_FastClipFunc","numpy::npyffi::objects::PyArray_FastPutmaskFunc","numpy::npyffi::objects::PyArray_FastTakeFunc","numpy::npyffi::objects::PyUFuncGenericFunction","numpy::npyffi::objects::PyUFunc_MaskedStridedInnerLoopFunc","numpy::npyffi::objects::PyUFunc_TypeResolutionFunc","numpy::npyffi::objects::PyUFunc_LegacyInnerLoopSelectionFunc","numpy::npyffi::objects::PyUFunc_MaskedInnerLoopSelectionFunc","numpy::npyffi::objects::NpyIter_IterNextFunc","numpy::npyffi::objects::NpyIter_GetMultiIndexFunc","numpy::npyffi::objects::PyDataMem_EventHookFunc","numpy::npyffi::objects::npy_iter_get_dataptr_t","numpy::npyffi::objects::NpyAuxData_FreeFunc","numpy::npyffi::objects::NpyAuxData_CloneFunc"],["
    1.0.0 · source§

    impl<T> Clone for Option<T>
    where\n T: Clone,

    source§

    fn clone(&self) -> Option<T>

    Returns a copy of the value. Read more
    source§

    fn clone_from(&mut self, source: &Option<T>)

    Performs copy-assignment from source. Read more
    ","Clone","numpy::npyffi::objects::PyArray_GetItemFunc","numpy::npyffi::objects::PyArray_SetItemFunc","numpy::npyffi::objects::PyArray_CopySwapNFunc","numpy::npyffi::objects::PyArray_CopySwapFunc","numpy::npyffi::objects::PyArray_NonzeroFunc","numpy::npyffi::objects::PyArray_CompareFunc","numpy::npyffi::objects::PyArray_ArgFunc","numpy::npyffi::objects::PyArray_DotFunc","numpy::npyffi::objects::PyArray_VectorUnaryFunc","numpy::npyffi::objects::PyArray_ScanFunc","numpy::npyffi::objects::PyArray_FromStrFunc","numpy::npyffi::objects::PyArray_FillFunc","numpy::npyffi::objects::PyArray_SortFunc","numpy::npyffi::objects::PyArray_ArgSortFunc","numpy::npyffi::objects::PyArray_PartitionFunc","numpy::npyffi::objects::PyArray_ArgPartitionFunc","numpy::npyffi::objects::PyArray_FillWithScalarFunc","numpy::npyffi::objects::PyArray_ScalarKindFunc","numpy::npyffi::objects::PyArray_FastClipFunc","numpy::npyffi::objects::PyArray_FastPutmaskFunc","numpy::npyffi::objects::PyArray_FastTakeFunc","numpy::npyffi::objects::PyUFuncGenericFunction","numpy::npyffi::objects::PyUFunc_MaskedStridedInnerLoopFunc","numpy::npyffi::objects::PyUFunc_TypeResolutionFunc","numpy::npyffi::objects::PyUFunc_LegacyInnerLoopSelectionFunc","numpy::npyffi::objects::PyUFunc_MaskedInnerLoopSelectionFunc","numpy::npyffi::objects::NpyIter_IterNextFunc","numpy::npyffi::objects::NpyIter_GetMultiIndexFunc","numpy::npyffi::objects::PyDataMem_EventHookFunc","numpy::npyffi::objects::npy_iter_get_dataptr_t","numpy::npyffi::objects::NpyAuxData_FreeFunc","numpy::npyffi::objects::NpyAuxData_CloneFunc"],["
    1.0.0 · source§

    impl<A, V> FromIterator<Option<A>> for Option<V>
    where\n V: FromIterator<A>,

    source§

    fn from_iter<I>(iter: I) -> Option<V>
    where\n I: IntoIterator<Item = Option<A>>,

    Takes each element in the Iterator: if it is None,\nno further elements are taken, and the None is\nreturned. Should no None occur, a container of type\nV containing the values of each Option is returned.

    \n
    Examples
    \n

    Here is an example which increments every integer in a vector.\nWe use the checked variant of add that returns None when the\ncalculation would result in an overflow.

    \n\n
    let items = vec![0_u16, 1, 2];\n\nlet res: Option<Vec<u16>> = items\n    .iter()\n    .map(|x| x.checked_add(1))\n    .collect();\n\nassert_eq!(res, Some(vec![1, 2, 3]));
    \n

    As you can see, this will return the expected, valid items.

    \n

    Here is another example that tries to subtract one from another list\nof integers, this time checking for underflow:

    \n\n
    let items = vec![2_u16, 1, 0];\n\nlet res: Option<Vec<u16>> = items\n    .iter()\n    .map(|x| x.checked_sub(1))\n    .collect();\n\nassert_eq!(res, None);
    \n

    Since the last element is zero, it would underflow. Thus, the resulting\nvalue is None.

    \n

    Here is a variation on the previous example, showing that no\nfurther elements are taken from iter after the first None.

    \n\n
    let items = vec![3_u16, 2, 1, 10];\n\nlet mut shared = 0;\n\nlet res: Option<Vec<u16>> = items\n    .iter()\n    .map(|x| { shared += x; x.checked_sub(2) })\n    .collect();\n\nassert_eq!(res, None);\nassert_eq!(shared, 6);
    \n

    Since the third element caused an underflow, no further elements were taken,\nso the final value of shared is 6 (= 3 + 2 + 1), not 16.

    \n
    ","FromIterator>","numpy::npyffi::objects::PyArray_GetItemFunc","numpy::npyffi::objects::PyArray_SetItemFunc","numpy::npyffi::objects::PyArray_CopySwapNFunc","numpy::npyffi::objects::PyArray_CopySwapFunc","numpy::npyffi::objects::PyArray_NonzeroFunc","numpy::npyffi::objects::PyArray_CompareFunc","numpy::npyffi::objects::PyArray_ArgFunc","numpy::npyffi::objects::PyArray_DotFunc","numpy::npyffi::objects::PyArray_VectorUnaryFunc","numpy::npyffi::objects::PyArray_ScanFunc","numpy::npyffi::objects::PyArray_FromStrFunc","numpy::npyffi::objects::PyArray_FillFunc","numpy::npyffi::objects::PyArray_SortFunc","numpy::npyffi::objects::PyArray_ArgSortFunc","numpy::npyffi::objects::PyArray_PartitionFunc","numpy::npyffi::objects::PyArray_ArgPartitionFunc","numpy::npyffi::objects::PyArray_FillWithScalarFunc","numpy::npyffi::objects::PyArray_ScalarKindFunc","numpy::npyffi::objects::PyArray_FastClipFunc","numpy::npyffi::objects::PyArray_FastPutmaskFunc","numpy::npyffi::objects::PyArray_FastTakeFunc","numpy::npyffi::objects::PyUFuncGenericFunction","numpy::npyffi::objects::PyUFunc_MaskedStridedInnerLoopFunc","numpy::npyffi::objects::PyUFunc_TypeResolutionFunc","numpy::npyffi::objects::PyUFunc_LegacyInnerLoopSelectionFunc","numpy::npyffi::objects::PyUFunc_MaskedInnerLoopSelectionFunc","numpy::npyffi::objects::NpyIter_IterNextFunc","numpy::npyffi::objects::NpyIter_GetMultiIndexFunc","numpy::npyffi::objects::PyDataMem_EventHookFunc","numpy::npyffi::objects::npy_iter_get_dataptr_t","numpy::npyffi::objects::NpyAuxData_FreeFunc","numpy::npyffi::objects::NpyAuxData_CloneFunc"],["
    1.0.0 · source§

    impl<T> StructuralEq for Option<T>

    ","StructuralEq","numpy::npyffi::objects::PyArray_GetItemFunc","numpy::npyffi::objects::PyArray_SetItemFunc","numpy::npyffi::objects::PyArray_CopySwapNFunc","numpy::npyffi::objects::PyArray_CopySwapFunc","numpy::npyffi::objects::PyArray_NonzeroFunc","numpy::npyffi::objects::PyArray_CompareFunc","numpy::npyffi::objects::PyArray_ArgFunc","numpy::npyffi::objects::PyArray_DotFunc","numpy::npyffi::objects::PyArray_VectorUnaryFunc","numpy::npyffi::objects::PyArray_ScanFunc","numpy::npyffi::objects::PyArray_FromStrFunc","numpy::npyffi::objects::PyArray_FillFunc","numpy::npyffi::objects::PyArray_SortFunc","numpy::npyffi::objects::PyArray_ArgSortFunc","numpy::npyffi::objects::PyArray_PartitionFunc","numpy::npyffi::objects::PyArray_ArgPartitionFunc","numpy::npyffi::objects::PyArray_FillWithScalarFunc","numpy::npyffi::objects::PyArray_ScalarKindFunc","numpy::npyffi::objects::PyArray_FastClipFunc","numpy::npyffi::objects::PyArray_FastPutmaskFunc","numpy::npyffi::objects::PyArray_FastTakeFunc","numpy::npyffi::objects::PyUFuncGenericFunction","numpy::npyffi::objects::PyUFunc_MaskedStridedInnerLoopFunc","numpy::npyffi::objects::PyUFunc_TypeResolutionFunc","numpy::npyffi::objects::PyUFunc_LegacyInnerLoopSelectionFunc","numpy::npyffi::objects::PyUFunc_MaskedInnerLoopSelectionFunc","numpy::npyffi::objects::NpyIter_IterNextFunc","numpy::npyffi::objects::NpyIter_GetMultiIndexFunc","numpy::npyffi::objects::PyDataMem_EventHookFunc","numpy::npyffi::objects::npy_iter_get_dataptr_t","numpy::npyffi::objects::NpyAuxData_FreeFunc","numpy::npyffi::objects::NpyAuxData_CloneFunc"],["
    1.0.0 · source§

    impl<T> Eq for Option<T>
    where\n T: Eq,

    ","Eq","numpy::npyffi::objects::PyArray_GetItemFunc","numpy::npyffi::objects::PyArray_SetItemFunc","numpy::npyffi::objects::PyArray_CopySwapNFunc","numpy::npyffi::objects::PyArray_CopySwapFunc","numpy::npyffi::objects::PyArray_NonzeroFunc","numpy::npyffi::objects::PyArray_CompareFunc","numpy::npyffi::objects::PyArray_ArgFunc","numpy::npyffi::objects::PyArray_DotFunc","numpy::npyffi::objects::PyArray_VectorUnaryFunc","numpy::npyffi::objects::PyArray_ScanFunc","numpy::npyffi::objects::PyArray_FromStrFunc","numpy::npyffi::objects::PyArray_FillFunc","numpy::npyffi::objects::PyArray_SortFunc","numpy::npyffi::objects::PyArray_ArgSortFunc","numpy::npyffi::objects::PyArray_PartitionFunc","numpy::npyffi::objects::PyArray_ArgPartitionFunc","numpy::npyffi::objects::PyArray_FillWithScalarFunc","numpy::npyffi::objects::PyArray_ScalarKindFunc","numpy::npyffi::objects::PyArray_FastClipFunc","numpy::npyffi::objects::PyArray_FastPutmaskFunc","numpy::npyffi::objects::PyArray_FastTakeFunc","numpy::npyffi::objects::PyUFuncGenericFunction","numpy::npyffi::objects::PyUFunc_MaskedStridedInnerLoopFunc","numpy::npyffi::objects::PyUFunc_TypeResolutionFunc","numpy::npyffi::objects::PyUFunc_LegacyInnerLoopSelectionFunc","numpy::npyffi::objects::PyUFunc_MaskedInnerLoopSelectionFunc","numpy::npyffi::objects::NpyIter_IterNextFunc","numpy::npyffi::objects::NpyIter_GetMultiIndexFunc","numpy::npyffi::objects::PyDataMem_EventHookFunc","numpy::npyffi::objects::npy_iter_get_dataptr_t","numpy::npyffi::objects::NpyAuxData_FreeFunc","numpy::npyffi::objects::NpyAuxData_CloneFunc"],["
    1.0.0 · source§

    impl<T> Hash for Option<T>
    where\n T: Hash,

    source§

    fn hash<__H>(&self, state: &mut __H)
    where\n __H: Hasher,

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

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

    Feeds a slice of this type into the given Hasher. Read more
    ","Hash","numpy::npyffi::objects::PyArray_GetItemFunc","numpy::npyffi::objects::PyArray_SetItemFunc","numpy::npyffi::objects::PyArray_CopySwapNFunc","numpy::npyffi::objects::PyArray_CopySwapFunc","numpy::npyffi::objects::PyArray_NonzeroFunc","numpy::npyffi::objects::PyArray_CompareFunc","numpy::npyffi::objects::PyArray_ArgFunc","numpy::npyffi::objects::PyArray_DotFunc","numpy::npyffi::objects::PyArray_VectorUnaryFunc","numpy::npyffi::objects::PyArray_ScanFunc","numpy::npyffi::objects::PyArray_FromStrFunc","numpy::npyffi::objects::PyArray_FillFunc","numpy::npyffi::objects::PyArray_SortFunc","numpy::npyffi::objects::PyArray_ArgSortFunc","numpy::npyffi::objects::PyArray_PartitionFunc","numpy::npyffi::objects::PyArray_ArgPartitionFunc","numpy::npyffi::objects::PyArray_FillWithScalarFunc","numpy::npyffi::objects::PyArray_ScalarKindFunc","numpy::npyffi::objects::PyArray_FastClipFunc","numpy::npyffi::objects::PyArray_FastPutmaskFunc","numpy::npyffi::objects::PyArray_FastTakeFunc","numpy::npyffi::objects::PyUFuncGenericFunction","numpy::npyffi::objects::PyUFunc_MaskedStridedInnerLoopFunc","numpy::npyffi::objects::PyUFunc_TypeResolutionFunc","numpy::npyffi::objects::PyUFunc_LegacyInnerLoopSelectionFunc","numpy::npyffi::objects::PyUFunc_MaskedInnerLoopSelectionFunc","numpy::npyffi::objects::NpyIter_IterNextFunc","numpy::npyffi::objects::NpyIter_GetMultiIndexFunc","numpy::npyffi::objects::PyDataMem_EventHookFunc","numpy::npyffi::objects::npy_iter_get_dataptr_t","numpy::npyffi::objects::NpyAuxData_FreeFunc","numpy::npyffi::objects::NpyAuxData_CloneFunc"],["
    1.0.0 · source§

    impl<T> Ord for Option<T>
    where\n T: Ord,

    source§

    fn cmp(&self, other: &Option<T>) -> Ordering

    This method returns an Ordering between self and other. Read more
    1.21.0 · source§

    fn max(self, other: Self) -> Self
    where\n Self: Sized,

    Compares and returns the maximum of two values. Read more
    1.21.0 · source§

    fn min(self, other: Self) -> Self
    where\n Self: Sized,

    Compares and returns the minimum of two values. Read more
    1.50.0 · source§

    fn clamp(self, min: Self, max: Self) -> Self
    where\n Self: Sized + PartialOrd,

    Restrict a value to a certain interval. Read more
    ","Ord","numpy::npyffi::objects::PyArray_GetItemFunc","numpy::npyffi::objects::PyArray_SetItemFunc","numpy::npyffi::objects::PyArray_CopySwapNFunc","numpy::npyffi::objects::PyArray_CopySwapFunc","numpy::npyffi::objects::PyArray_NonzeroFunc","numpy::npyffi::objects::PyArray_CompareFunc","numpy::npyffi::objects::PyArray_ArgFunc","numpy::npyffi::objects::PyArray_DotFunc","numpy::npyffi::objects::PyArray_VectorUnaryFunc","numpy::npyffi::objects::PyArray_ScanFunc","numpy::npyffi::objects::PyArray_FromStrFunc","numpy::npyffi::objects::PyArray_FillFunc","numpy::npyffi::objects::PyArray_SortFunc","numpy::npyffi::objects::PyArray_ArgSortFunc","numpy::npyffi::objects::PyArray_PartitionFunc","numpy::npyffi::objects::PyArray_ArgPartitionFunc","numpy::npyffi::objects::PyArray_FillWithScalarFunc","numpy::npyffi::objects::PyArray_ScalarKindFunc","numpy::npyffi::objects::PyArray_FastClipFunc","numpy::npyffi::objects::PyArray_FastPutmaskFunc","numpy::npyffi::objects::PyArray_FastTakeFunc","numpy::npyffi::objects::PyUFuncGenericFunction","numpy::npyffi::objects::PyUFunc_MaskedStridedInnerLoopFunc","numpy::npyffi::objects::PyUFunc_TypeResolutionFunc","numpy::npyffi::objects::PyUFunc_LegacyInnerLoopSelectionFunc","numpy::npyffi::objects::PyUFunc_MaskedInnerLoopSelectionFunc","numpy::npyffi::objects::NpyIter_IterNextFunc","numpy::npyffi::objects::NpyIter_GetMultiIndexFunc","numpy::npyffi::objects::PyDataMem_EventHookFunc","numpy::npyffi::objects::npy_iter_get_dataptr_t","numpy::npyffi::objects::NpyAuxData_FreeFunc","numpy::npyffi::objects::NpyAuxData_CloneFunc"],["
    1.0.0 · source§

    impl<T> PartialEq for Option<T>
    where\n T: PartialEq,

    source§

    fn eq(&self, other: &Option<T>) -> bool

    This method tests for self and other values to be equal, and is used\nby ==.
    1.0.0 · source§

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

    This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
    ","PartialEq","numpy::npyffi::objects::PyArray_GetItemFunc","numpy::npyffi::objects::PyArray_SetItemFunc","numpy::npyffi::objects::PyArray_CopySwapNFunc","numpy::npyffi::objects::PyArray_CopySwapFunc","numpy::npyffi::objects::PyArray_NonzeroFunc","numpy::npyffi::objects::PyArray_CompareFunc","numpy::npyffi::objects::PyArray_ArgFunc","numpy::npyffi::objects::PyArray_DotFunc","numpy::npyffi::objects::PyArray_VectorUnaryFunc","numpy::npyffi::objects::PyArray_ScanFunc","numpy::npyffi::objects::PyArray_FromStrFunc","numpy::npyffi::objects::PyArray_FillFunc","numpy::npyffi::objects::PyArray_SortFunc","numpy::npyffi::objects::PyArray_ArgSortFunc","numpy::npyffi::objects::PyArray_PartitionFunc","numpy::npyffi::objects::PyArray_ArgPartitionFunc","numpy::npyffi::objects::PyArray_FillWithScalarFunc","numpy::npyffi::objects::PyArray_ScalarKindFunc","numpy::npyffi::objects::PyArray_FastClipFunc","numpy::npyffi::objects::PyArray_FastPutmaskFunc","numpy::npyffi::objects::PyArray_FastTakeFunc","numpy::npyffi::objects::PyUFuncGenericFunction","numpy::npyffi::objects::PyUFunc_MaskedStridedInnerLoopFunc","numpy::npyffi::objects::PyUFunc_TypeResolutionFunc","numpy::npyffi::objects::PyUFunc_LegacyInnerLoopSelectionFunc","numpy::npyffi::objects::PyUFunc_MaskedInnerLoopSelectionFunc","numpy::npyffi::objects::NpyIter_IterNextFunc","numpy::npyffi::objects::NpyIter_GetMultiIndexFunc","numpy::npyffi::objects::PyDataMem_EventHookFunc","numpy::npyffi::objects::npy_iter_get_dataptr_t","numpy::npyffi::objects::NpyAuxData_FreeFunc","numpy::npyffi::objects::NpyAuxData_CloneFunc"],["
    1.0.0 · source§

    impl<T> IntoIterator for Option<T>

    source§

    fn into_iter(self) -> IntoIter<T>

    Returns a consuming iterator over the possibly contained value.

    \n
    Examples
    \n
    let x = Some(\"string\");\nlet v: Vec<&str> = x.into_iter().collect();\nassert_eq!(v, [\"string\"]);\n\nlet x = None;\nlet v: Vec<&str> = x.into_iter().collect();\nassert!(v.is_empty());
    \n
    §

    type Item = T

    The type of the elements being iterated over.
    §

    type IntoIter = IntoIter<T>

    Which kind of iterator are we turning this into?
    ","IntoIterator","numpy::npyffi::objects::PyArray_GetItemFunc","numpy::npyffi::objects::PyArray_SetItemFunc","numpy::npyffi::objects::PyArray_CopySwapNFunc","numpy::npyffi::objects::PyArray_CopySwapFunc","numpy::npyffi::objects::PyArray_NonzeroFunc","numpy::npyffi::objects::PyArray_CompareFunc","numpy::npyffi::objects::PyArray_ArgFunc","numpy::npyffi::objects::PyArray_DotFunc","numpy::npyffi::objects::PyArray_VectorUnaryFunc","numpy::npyffi::objects::PyArray_ScanFunc","numpy::npyffi::objects::PyArray_FromStrFunc","numpy::npyffi::objects::PyArray_FillFunc","numpy::npyffi::objects::PyArray_SortFunc","numpy::npyffi::objects::PyArray_ArgSortFunc","numpy::npyffi::objects::PyArray_PartitionFunc","numpy::npyffi::objects::PyArray_ArgPartitionFunc","numpy::npyffi::objects::PyArray_FillWithScalarFunc","numpy::npyffi::objects::PyArray_ScalarKindFunc","numpy::npyffi::objects::PyArray_FastClipFunc","numpy::npyffi::objects::PyArray_FastPutmaskFunc","numpy::npyffi::objects::PyArray_FastTakeFunc","numpy::npyffi::objects::PyUFuncGenericFunction","numpy::npyffi::objects::PyUFunc_MaskedStridedInnerLoopFunc","numpy::npyffi::objects::PyUFunc_TypeResolutionFunc","numpy::npyffi::objects::PyUFunc_LegacyInnerLoopSelectionFunc","numpy::npyffi::objects::PyUFunc_MaskedInnerLoopSelectionFunc","numpy::npyffi::objects::NpyIter_IterNextFunc","numpy::npyffi::objects::NpyIter_GetMultiIndexFunc","numpy::npyffi::objects::PyDataMem_EventHookFunc","numpy::npyffi::objects::npy_iter_get_dataptr_t","numpy::npyffi::objects::NpyAuxData_FreeFunc","numpy::npyffi::objects::NpyAuxData_CloneFunc"],["
    1.37.0 · source§

    impl<T, U> Sum<Option<U>> for Option<T>
    where\n T: Sum<U>,

    source§

    fn sum<I>(iter: I) -> Option<T>
    where\n I: Iterator<Item = Option<U>>,

    Takes each element in the Iterator: if it is a None, no further\nelements are taken, and the None is returned. Should no None\noccur, the sum of all elements is returned.

    \n
    Examples
    \n

    This sums up the position of the character ‘a’ in a vector of strings,\nif a word did not have the character ‘a’ the operation returns None:

    \n\n
    let words = vec![\"have\", \"a\", \"great\", \"day\"];\nlet total: Option<usize> = words.iter().map(|w| w.find('a')).sum();\nassert_eq!(total, Some(5));\nlet words = vec![\"have\", \"a\", \"good\", \"day\"];\nlet total: Option<usize> = words.iter().map(|w| w.find('a')).sum();\nassert_eq!(total, None);
    \n
    ","Sum>","numpy::npyffi::objects::PyArray_GetItemFunc","numpy::npyffi::objects::PyArray_SetItemFunc","numpy::npyffi::objects::PyArray_CopySwapNFunc","numpy::npyffi::objects::PyArray_CopySwapFunc","numpy::npyffi::objects::PyArray_NonzeroFunc","numpy::npyffi::objects::PyArray_CompareFunc","numpy::npyffi::objects::PyArray_ArgFunc","numpy::npyffi::objects::PyArray_DotFunc","numpy::npyffi::objects::PyArray_VectorUnaryFunc","numpy::npyffi::objects::PyArray_ScanFunc","numpy::npyffi::objects::PyArray_FromStrFunc","numpy::npyffi::objects::PyArray_FillFunc","numpy::npyffi::objects::PyArray_SortFunc","numpy::npyffi::objects::PyArray_ArgSortFunc","numpy::npyffi::objects::PyArray_PartitionFunc","numpy::npyffi::objects::PyArray_ArgPartitionFunc","numpy::npyffi::objects::PyArray_FillWithScalarFunc","numpy::npyffi::objects::PyArray_ScalarKindFunc","numpy::npyffi::objects::PyArray_FastClipFunc","numpy::npyffi::objects::PyArray_FastPutmaskFunc","numpy::npyffi::objects::PyArray_FastTakeFunc","numpy::npyffi::objects::PyUFuncGenericFunction","numpy::npyffi::objects::PyUFunc_MaskedStridedInnerLoopFunc","numpy::npyffi::objects::PyUFunc_TypeResolutionFunc","numpy::npyffi::objects::PyUFunc_LegacyInnerLoopSelectionFunc","numpy::npyffi::objects::PyUFunc_MaskedInnerLoopSelectionFunc","numpy::npyffi::objects::NpyIter_IterNextFunc","numpy::npyffi::objects::NpyIter_GetMultiIndexFunc","numpy::npyffi::objects::PyDataMem_EventHookFunc","numpy::npyffi::objects::npy_iter_get_dataptr_t","numpy::npyffi::objects::NpyAuxData_FreeFunc","numpy::npyffi::objects::NpyAuxData_CloneFunc"],["
    1.0.0 · source§

    impl<T> StructuralPartialEq for Option<T>

    ","StructuralPartialEq","numpy::npyffi::objects::PyArray_GetItemFunc","numpy::npyffi::objects::PyArray_SetItemFunc","numpy::npyffi::objects::PyArray_CopySwapNFunc","numpy::npyffi::objects::PyArray_CopySwapFunc","numpy::npyffi::objects::PyArray_NonzeroFunc","numpy::npyffi::objects::PyArray_CompareFunc","numpy::npyffi::objects::PyArray_ArgFunc","numpy::npyffi::objects::PyArray_DotFunc","numpy::npyffi::objects::PyArray_VectorUnaryFunc","numpy::npyffi::objects::PyArray_ScanFunc","numpy::npyffi::objects::PyArray_FromStrFunc","numpy::npyffi::objects::PyArray_FillFunc","numpy::npyffi::objects::PyArray_SortFunc","numpy::npyffi::objects::PyArray_ArgSortFunc","numpy::npyffi::objects::PyArray_PartitionFunc","numpy::npyffi::objects::PyArray_ArgPartitionFunc","numpy::npyffi::objects::PyArray_FillWithScalarFunc","numpy::npyffi::objects::PyArray_ScalarKindFunc","numpy::npyffi::objects::PyArray_FastClipFunc","numpy::npyffi::objects::PyArray_FastPutmaskFunc","numpy::npyffi::objects::PyArray_FastTakeFunc","numpy::npyffi::objects::PyUFuncGenericFunction","numpy::npyffi::objects::PyUFunc_MaskedStridedInnerLoopFunc","numpy::npyffi::objects::PyUFunc_TypeResolutionFunc","numpy::npyffi::objects::PyUFunc_LegacyInnerLoopSelectionFunc","numpy::npyffi::objects::PyUFunc_MaskedInnerLoopSelectionFunc","numpy::npyffi::objects::NpyIter_IterNextFunc","numpy::npyffi::objects::NpyIter_GetMultiIndexFunc","numpy::npyffi::objects::PyDataMem_EventHookFunc","numpy::npyffi::objects::npy_iter_get_dataptr_t","numpy::npyffi::objects::NpyAuxData_FreeFunc","numpy::npyffi::objects::NpyAuxData_CloneFunc"],["
    1.0.0 · source§

    impl<T> Debug for Option<T>
    where\n T: Debug,

    source§

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

    Formats the value using the given formatter. Read more
    ","Debug","numpy::npyffi::objects::PyArray_GetItemFunc","numpy::npyffi::objects::PyArray_SetItemFunc","numpy::npyffi::objects::PyArray_CopySwapNFunc","numpy::npyffi::objects::PyArray_CopySwapFunc","numpy::npyffi::objects::PyArray_NonzeroFunc","numpy::npyffi::objects::PyArray_CompareFunc","numpy::npyffi::objects::PyArray_ArgFunc","numpy::npyffi::objects::PyArray_DotFunc","numpy::npyffi::objects::PyArray_VectorUnaryFunc","numpy::npyffi::objects::PyArray_ScanFunc","numpy::npyffi::objects::PyArray_FromStrFunc","numpy::npyffi::objects::PyArray_FillFunc","numpy::npyffi::objects::PyArray_SortFunc","numpy::npyffi::objects::PyArray_ArgSortFunc","numpy::npyffi::objects::PyArray_PartitionFunc","numpy::npyffi::objects::PyArray_ArgPartitionFunc","numpy::npyffi::objects::PyArray_FillWithScalarFunc","numpy::npyffi::objects::PyArray_ScalarKindFunc","numpy::npyffi::objects::PyArray_FastClipFunc","numpy::npyffi::objects::PyArray_FastPutmaskFunc","numpy::npyffi::objects::PyArray_FastTakeFunc","numpy::npyffi::objects::PyUFuncGenericFunction","numpy::npyffi::objects::PyUFunc_MaskedStridedInnerLoopFunc","numpy::npyffi::objects::PyUFunc_TypeResolutionFunc","numpy::npyffi::objects::PyUFunc_LegacyInnerLoopSelectionFunc","numpy::npyffi::objects::PyUFunc_MaskedInnerLoopSelectionFunc","numpy::npyffi::objects::NpyIter_IterNextFunc","numpy::npyffi::objects::NpyIter_GetMultiIndexFunc","numpy::npyffi::objects::PyDataMem_EventHookFunc","numpy::npyffi::objects::npy_iter_get_dataptr_t","numpy::npyffi::objects::NpyAuxData_FreeFunc","numpy::npyffi::objects::NpyAuxData_CloneFunc"],["
    1.12.0 · source§

    impl<T> From<T> for Option<T>

    source§

    fn from(val: T) -> Option<T>

    Moves val into a new Some.

    \n
    Examples
    \n
    let o: Option<u8> = Option::from(67);\n\nassert_eq!(Some(67), o);
    \n
    ","From","numpy::npyffi::objects::PyArray_GetItemFunc","numpy::npyffi::objects::PyArray_SetItemFunc","numpy::npyffi::objects::PyArray_CopySwapNFunc","numpy::npyffi::objects::PyArray_CopySwapFunc","numpy::npyffi::objects::PyArray_NonzeroFunc","numpy::npyffi::objects::PyArray_CompareFunc","numpy::npyffi::objects::PyArray_ArgFunc","numpy::npyffi::objects::PyArray_DotFunc","numpy::npyffi::objects::PyArray_VectorUnaryFunc","numpy::npyffi::objects::PyArray_ScanFunc","numpy::npyffi::objects::PyArray_FromStrFunc","numpy::npyffi::objects::PyArray_FillFunc","numpy::npyffi::objects::PyArray_SortFunc","numpy::npyffi::objects::PyArray_ArgSortFunc","numpy::npyffi::objects::PyArray_PartitionFunc","numpy::npyffi::objects::PyArray_ArgPartitionFunc","numpy::npyffi::objects::PyArray_FillWithScalarFunc","numpy::npyffi::objects::PyArray_ScalarKindFunc","numpy::npyffi::objects::PyArray_FastClipFunc","numpy::npyffi::objects::PyArray_FastPutmaskFunc","numpy::npyffi::objects::PyArray_FastTakeFunc","numpy::npyffi::objects::PyUFuncGenericFunction","numpy::npyffi::objects::PyUFunc_MaskedStridedInnerLoopFunc","numpy::npyffi::objects::PyUFunc_TypeResolutionFunc","numpy::npyffi::objects::PyUFunc_LegacyInnerLoopSelectionFunc","numpy::npyffi::objects::PyUFunc_MaskedInnerLoopSelectionFunc","numpy::npyffi::objects::NpyIter_IterNextFunc","numpy::npyffi::objects::NpyIter_GetMultiIndexFunc","numpy::npyffi::objects::PyDataMem_EventHookFunc","numpy::npyffi::objects::npy_iter_get_dataptr_t","numpy::npyffi::objects::NpyAuxData_FreeFunc","numpy::npyffi::objects::NpyAuxData_CloneFunc"],["
    1.0.0 · source§

    impl<T> Copy for Option<T>
    where\n T: Copy,

    ","Copy","numpy::npyffi::objects::PyArray_GetItemFunc","numpy::npyffi::objects::PyArray_SetItemFunc","numpy::npyffi::objects::PyArray_CopySwapNFunc","numpy::npyffi::objects::PyArray_CopySwapFunc","numpy::npyffi::objects::PyArray_NonzeroFunc","numpy::npyffi::objects::PyArray_CompareFunc","numpy::npyffi::objects::PyArray_ArgFunc","numpy::npyffi::objects::PyArray_DotFunc","numpy::npyffi::objects::PyArray_VectorUnaryFunc","numpy::npyffi::objects::PyArray_ScanFunc","numpy::npyffi::objects::PyArray_FromStrFunc","numpy::npyffi::objects::PyArray_FillFunc","numpy::npyffi::objects::PyArray_SortFunc","numpy::npyffi::objects::PyArray_ArgSortFunc","numpy::npyffi::objects::PyArray_PartitionFunc","numpy::npyffi::objects::PyArray_ArgPartitionFunc","numpy::npyffi::objects::PyArray_FillWithScalarFunc","numpy::npyffi::objects::PyArray_ScalarKindFunc","numpy::npyffi::objects::PyArray_FastClipFunc","numpy::npyffi::objects::PyArray_FastPutmaskFunc","numpy::npyffi::objects::PyArray_FastTakeFunc","numpy::npyffi::objects::PyUFuncGenericFunction","numpy::npyffi::objects::PyUFunc_MaskedStridedInnerLoopFunc","numpy::npyffi::objects::PyUFunc_TypeResolutionFunc","numpy::npyffi::objects::PyUFunc_LegacyInnerLoopSelectionFunc","numpy::npyffi::objects::PyUFunc_MaskedInnerLoopSelectionFunc","numpy::npyffi::objects::NpyIter_IterNextFunc","numpy::npyffi::objects::NpyIter_GetMultiIndexFunc","numpy::npyffi::objects::PyDataMem_EventHookFunc","numpy::npyffi::objects::npy_iter_get_dataptr_t","numpy::npyffi::objects::NpyAuxData_FreeFunc","numpy::npyffi::objects::NpyAuxData_CloneFunc"],["
    1.0.0 · source§

    impl<T> Default for Option<T>

    source§

    fn default() -> Option<T>

    Returns None.

    \n
    Examples
    \n
    let opt: Option<u32> = Option::default();\nassert!(opt.is_none());
    \n
    ","Default","numpy::npyffi::objects::PyArray_GetItemFunc","numpy::npyffi::objects::PyArray_SetItemFunc","numpy::npyffi::objects::PyArray_CopySwapNFunc","numpy::npyffi::objects::PyArray_CopySwapFunc","numpy::npyffi::objects::PyArray_NonzeroFunc","numpy::npyffi::objects::PyArray_CompareFunc","numpy::npyffi::objects::PyArray_ArgFunc","numpy::npyffi::objects::PyArray_DotFunc","numpy::npyffi::objects::PyArray_VectorUnaryFunc","numpy::npyffi::objects::PyArray_ScanFunc","numpy::npyffi::objects::PyArray_FromStrFunc","numpy::npyffi::objects::PyArray_FillFunc","numpy::npyffi::objects::PyArray_SortFunc","numpy::npyffi::objects::PyArray_ArgSortFunc","numpy::npyffi::objects::PyArray_PartitionFunc","numpy::npyffi::objects::PyArray_ArgPartitionFunc","numpy::npyffi::objects::PyArray_FillWithScalarFunc","numpy::npyffi::objects::PyArray_ScalarKindFunc","numpy::npyffi::objects::PyArray_FastClipFunc","numpy::npyffi::objects::PyArray_FastPutmaskFunc","numpy::npyffi::objects::PyArray_FastTakeFunc","numpy::npyffi::objects::PyUFuncGenericFunction","numpy::npyffi::objects::PyUFunc_MaskedStridedInnerLoopFunc","numpy::npyffi::objects::PyUFunc_TypeResolutionFunc","numpy::npyffi::objects::PyUFunc_LegacyInnerLoopSelectionFunc","numpy::npyffi::objects::PyUFunc_MaskedInnerLoopSelectionFunc","numpy::npyffi::objects::NpyIter_IterNextFunc","numpy::npyffi::objects::NpyIter_GetMultiIndexFunc","numpy::npyffi::objects::PyDataMem_EventHookFunc","numpy::npyffi::objects::npy_iter_get_dataptr_t","numpy::npyffi::objects::NpyAuxData_FreeFunc","numpy::npyffi::objects::NpyAuxData_CloneFunc"],["
    §

    impl<T> ToPyObject for Option<T>
    where\n T: ToPyObject,

    Option::Some<T> is converted like T.\nOption::None is converted to Python None.

    \n
    §

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

    Converts self into a Python object.
    ","ToPyObject","numpy::npyffi::objects::PyArray_GetItemFunc","numpy::npyffi::objects::PyArray_SetItemFunc","numpy::npyffi::objects::PyArray_CopySwapNFunc","numpy::npyffi::objects::PyArray_CopySwapFunc","numpy::npyffi::objects::PyArray_NonzeroFunc","numpy::npyffi::objects::PyArray_CompareFunc","numpy::npyffi::objects::PyArray_ArgFunc","numpy::npyffi::objects::PyArray_DotFunc","numpy::npyffi::objects::PyArray_VectorUnaryFunc","numpy::npyffi::objects::PyArray_ScanFunc","numpy::npyffi::objects::PyArray_FromStrFunc","numpy::npyffi::objects::PyArray_FillFunc","numpy::npyffi::objects::PyArray_SortFunc","numpy::npyffi::objects::PyArray_ArgSortFunc","numpy::npyffi::objects::PyArray_PartitionFunc","numpy::npyffi::objects::PyArray_ArgPartitionFunc","numpy::npyffi::objects::PyArray_FillWithScalarFunc","numpy::npyffi::objects::PyArray_ScalarKindFunc","numpy::npyffi::objects::PyArray_FastClipFunc","numpy::npyffi::objects::PyArray_FastPutmaskFunc","numpy::npyffi::objects::PyArray_FastTakeFunc","numpy::npyffi::objects::PyUFuncGenericFunction","numpy::npyffi::objects::PyUFunc_MaskedStridedInnerLoopFunc","numpy::npyffi::objects::PyUFunc_TypeResolutionFunc","numpy::npyffi::objects::PyUFunc_LegacyInnerLoopSelectionFunc","numpy::npyffi::objects::PyUFunc_MaskedInnerLoopSelectionFunc","numpy::npyffi::objects::NpyIter_IterNextFunc","numpy::npyffi::objects::NpyIter_GetMultiIndexFunc","numpy::npyffi::objects::PyDataMem_EventHookFunc","numpy::npyffi::objects::npy_iter_get_dataptr_t","numpy::npyffi::objects::NpyAuxData_FreeFunc","numpy::npyffi::objects::NpyAuxData_CloneFunc"],["
    §

    impl<T> IntoPy<Py<PyAny>> for Option<T>
    where\n T: IntoPy<Py<PyAny>>,

    §

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

    Performs the conversion.
    ","IntoPy>","numpy::npyffi::objects::PyArray_GetItemFunc","numpy::npyffi::objects::PyArray_SetItemFunc","numpy::npyffi::objects::PyArray_CopySwapNFunc","numpy::npyffi::objects::PyArray_CopySwapFunc","numpy::npyffi::objects::PyArray_NonzeroFunc","numpy::npyffi::objects::PyArray_CompareFunc","numpy::npyffi::objects::PyArray_ArgFunc","numpy::npyffi::objects::PyArray_DotFunc","numpy::npyffi::objects::PyArray_VectorUnaryFunc","numpy::npyffi::objects::PyArray_ScanFunc","numpy::npyffi::objects::PyArray_FromStrFunc","numpy::npyffi::objects::PyArray_FillFunc","numpy::npyffi::objects::PyArray_SortFunc","numpy::npyffi::objects::PyArray_ArgSortFunc","numpy::npyffi::objects::PyArray_PartitionFunc","numpy::npyffi::objects::PyArray_ArgPartitionFunc","numpy::npyffi::objects::PyArray_FillWithScalarFunc","numpy::npyffi::objects::PyArray_ScalarKindFunc","numpy::npyffi::objects::PyArray_FastClipFunc","numpy::npyffi::objects::PyArray_FastPutmaskFunc","numpy::npyffi::objects::PyArray_FastTakeFunc","numpy::npyffi::objects::PyUFuncGenericFunction","numpy::npyffi::objects::PyUFunc_MaskedStridedInnerLoopFunc","numpy::npyffi::objects::PyUFunc_TypeResolutionFunc","numpy::npyffi::objects::PyUFunc_LegacyInnerLoopSelectionFunc","numpy::npyffi::objects::PyUFunc_MaskedInnerLoopSelectionFunc","numpy::npyffi::objects::NpyIter_IterNextFunc","numpy::npyffi::objects::NpyIter_GetMultiIndexFunc","numpy::npyffi::objects::PyDataMem_EventHookFunc","numpy::npyffi::objects::npy_iter_get_dataptr_t","numpy::npyffi::objects::NpyAuxData_FreeFunc","numpy::npyffi::objects::NpyAuxData_CloneFunc"],["
    §

    impl<Value> IterOptionKind for Option<Value>

    §

    fn iter_tag(&self) -> IterOptionTag

    ","IterOptionKind","numpy::npyffi::objects::PyArray_GetItemFunc","numpy::npyffi::objects::PyArray_SetItemFunc","numpy::npyffi::objects::PyArray_CopySwapNFunc","numpy::npyffi::objects::PyArray_CopySwapFunc","numpy::npyffi::objects::PyArray_NonzeroFunc","numpy::npyffi::objects::PyArray_CompareFunc","numpy::npyffi::objects::PyArray_ArgFunc","numpy::npyffi::objects::PyArray_DotFunc","numpy::npyffi::objects::PyArray_VectorUnaryFunc","numpy::npyffi::objects::PyArray_ScanFunc","numpy::npyffi::objects::PyArray_FromStrFunc","numpy::npyffi::objects::PyArray_FillFunc","numpy::npyffi::objects::PyArray_SortFunc","numpy::npyffi::objects::PyArray_ArgSortFunc","numpy::npyffi::objects::PyArray_PartitionFunc","numpy::npyffi::objects::PyArray_ArgPartitionFunc","numpy::npyffi::objects::PyArray_FillWithScalarFunc","numpy::npyffi::objects::PyArray_ScalarKindFunc","numpy::npyffi::objects::PyArray_FastClipFunc","numpy::npyffi::objects::PyArray_FastPutmaskFunc","numpy::npyffi::objects::PyArray_FastTakeFunc","numpy::npyffi::objects::PyUFuncGenericFunction","numpy::npyffi::objects::PyUFunc_MaskedStridedInnerLoopFunc","numpy::npyffi::objects::PyUFunc_TypeResolutionFunc","numpy::npyffi::objects::PyUFunc_LegacyInnerLoopSelectionFunc","numpy::npyffi::objects::PyUFunc_MaskedInnerLoopSelectionFunc","numpy::npyffi::objects::NpyIter_IterNextFunc","numpy::npyffi::objects::NpyIter_GetMultiIndexFunc","numpy::npyffi::objects::PyDataMem_EventHookFunc","numpy::npyffi::objects::npy_iter_get_dataptr_t","numpy::npyffi::objects::NpyAuxData_FreeFunc","numpy::npyffi::objects::NpyAuxData_CloneFunc"],["
    §

    impl<Value> AsyncIterOptionKind for Option<Value>

    §

    fn async_iter_tag(&self) -> AsyncIterOptionTag

    ","AsyncIterOptionKind","numpy::npyffi::objects::PyArray_GetItemFunc","numpy::npyffi::objects::PyArray_SetItemFunc","numpy::npyffi::objects::PyArray_CopySwapNFunc","numpy::npyffi::objects::PyArray_CopySwapFunc","numpy::npyffi::objects::PyArray_NonzeroFunc","numpy::npyffi::objects::PyArray_CompareFunc","numpy::npyffi::objects::PyArray_ArgFunc","numpy::npyffi::objects::PyArray_DotFunc","numpy::npyffi::objects::PyArray_VectorUnaryFunc","numpy::npyffi::objects::PyArray_ScanFunc","numpy::npyffi::objects::PyArray_FromStrFunc","numpy::npyffi::objects::PyArray_FillFunc","numpy::npyffi::objects::PyArray_SortFunc","numpy::npyffi::objects::PyArray_ArgSortFunc","numpy::npyffi::objects::PyArray_PartitionFunc","numpy::npyffi::objects::PyArray_ArgPartitionFunc","numpy::npyffi::objects::PyArray_FillWithScalarFunc","numpy::npyffi::objects::PyArray_ScalarKindFunc","numpy::npyffi::objects::PyArray_FastClipFunc","numpy::npyffi::objects::PyArray_FastPutmaskFunc","numpy::npyffi::objects::PyArray_FastTakeFunc","numpy::npyffi::objects::PyUFuncGenericFunction","numpy::npyffi::objects::PyUFunc_MaskedStridedInnerLoopFunc","numpy::npyffi::objects::PyUFunc_TypeResolutionFunc","numpy::npyffi::objects::PyUFunc_LegacyInnerLoopSelectionFunc","numpy::npyffi::objects::PyUFunc_MaskedInnerLoopSelectionFunc","numpy::npyffi::objects::NpyIter_IterNextFunc","numpy::npyffi::objects::NpyIter_GetMultiIndexFunc","numpy::npyffi::objects::PyDataMem_EventHookFunc","numpy::npyffi::objects::npy_iter_get_dataptr_t","numpy::npyffi::objects::NpyAuxData_FreeFunc","numpy::npyffi::objects::NpyAuxData_CloneFunc"],["
    §

    impl<T> AsPyPointer for Option<T>
    where\n T: AsPyPointer,

    Convert None into a null pointer.

    \n
    §

    fn as_ptr(&self) -> *mut PyObject

    Returns the underlying FFI pointer as a borrowed pointer.
    ","AsPyPointer","numpy::npyffi::objects::PyArray_GetItemFunc","numpy::npyffi::objects::PyArray_SetItemFunc","numpy::npyffi::objects::PyArray_CopySwapNFunc","numpy::npyffi::objects::PyArray_CopySwapFunc","numpy::npyffi::objects::PyArray_NonzeroFunc","numpy::npyffi::objects::PyArray_CompareFunc","numpy::npyffi::objects::PyArray_ArgFunc","numpy::npyffi::objects::PyArray_DotFunc","numpy::npyffi::objects::PyArray_VectorUnaryFunc","numpy::npyffi::objects::PyArray_ScanFunc","numpy::npyffi::objects::PyArray_FromStrFunc","numpy::npyffi::objects::PyArray_FillFunc","numpy::npyffi::objects::PyArray_SortFunc","numpy::npyffi::objects::PyArray_ArgSortFunc","numpy::npyffi::objects::PyArray_PartitionFunc","numpy::npyffi::objects::PyArray_ArgPartitionFunc","numpy::npyffi::objects::PyArray_FillWithScalarFunc","numpy::npyffi::objects::PyArray_ScalarKindFunc","numpy::npyffi::objects::PyArray_FastClipFunc","numpy::npyffi::objects::PyArray_FastPutmaskFunc","numpy::npyffi::objects::PyArray_FastTakeFunc","numpy::npyffi::objects::PyUFuncGenericFunction","numpy::npyffi::objects::PyUFunc_MaskedStridedInnerLoopFunc","numpy::npyffi::objects::PyUFunc_TypeResolutionFunc","numpy::npyffi::objects::PyUFunc_LegacyInnerLoopSelectionFunc","numpy::npyffi::objects::PyUFunc_MaskedInnerLoopSelectionFunc","numpy::npyffi::objects::NpyIter_IterNextFunc","numpy::npyffi::objects::NpyIter_GetMultiIndexFunc","numpy::npyffi::objects::PyDataMem_EventHookFunc","numpy::npyffi::objects::npy_iter_get_dataptr_t","numpy::npyffi::objects::NpyAuxData_FreeFunc","numpy::npyffi::objects::NpyAuxData_CloneFunc"],["
    §

    impl<'py, T> FromPyObject<'py> for Option<T>
    where\n T: FromPyObject<'py>,

    §

    fn extract_bound(obj: &Bound<'py, PyAny>) -> Result<Option<T>, PyErr>

    Extracts Self from the bound smart pointer obj. Read more
    §

    fn extract(ob: &'py PyAny) -> Result<Self, PyErr>

    Extracts Self from the source GIL Ref obj. Read more
    ","FromPyObject<'py>","numpy::npyffi::objects::PyArray_GetItemFunc","numpy::npyffi::objects::PyArray_SetItemFunc","numpy::npyffi::objects::PyArray_CopySwapNFunc","numpy::npyffi::objects::PyArray_CopySwapFunc","numpy::npyffi::objects::PyArray_NonzeroFunc","numpy::npyffi::objects::PyArray_CompareFunc","numpy::npyffi::objects::PyArray_ArgFunc","numpy::npyffi::objects::PyArray_DotFunc","numpy::npyffi::objects::PyArray_VectorUnaryFunc","numpy::npyffi::objects::PyArray_ScanFunc","numpy::npyffi::objects::PyArray_FromStrFunc","numpy::npyffi::objects::PyArray_FillFunc","numpy::npyffi::objects::PyArray_SortFunc","numpy::npyffi::objects::PyArray_ArgSortFunc","numpy::npyffi::objects::PyArray_PartitionFunc","numpy::npyffi::objects::PyArray_ArgPartitionFunc","numpy::npyffi::objects::PyArray_FillWithScalarFunc","numpy::npyffi::objects::PyArray_ScalarKindFunc","numpy::npyffi::objects::PyArray_FastClipFunc","numpy::npyffi::objects::PyArray_FastPutmaskFunc","numpy::npyffi::objects::PyArray_FastTakeFunc","numpy::npyffi::objects::PyUFuncGenericFunction","numpy::npyffi::objects::PyUFunc_MaskedStridedInnerLoopFunc","numpy::npyffi::objects::PyUFunc_TypeResolutionFunc","numpy::npyffi::objects::PyUFunc_LegacyInnerLoopSelectionFunc","numpy::npyffi::objects::PyUFunc_MaskedInnerLoopSelectionFunc","numpy::npyffi::objects::NpyIter_IterNextFunc","numpy::npyffi::objects::NpyIter_GetMultiIndexFunc","numpy::npyffi::objects::PyDataMem_EventHookFunc","numpy::npyffi::objects::npy_iter_get_dataptr_t","numpy::npyffi::objects::NpyAuxData_FreeFunc","numpy::npyffi::objects::NpyAuxData_CloneFunc"]] +"numpy":[["
    source§

    impl<T> Option<T>

    1.0.0 (const: 1.48.0) · source

    pub const fn is_some(&self) -> bool

    Returns true if the option is a Some value.

    \n
    Examples
    \n
    let x: Option<u32> = Some(2);\nassert_eq!(x.is_some(), true);\n\nlet x: Option<u32> = None;\nassert_eq!(x.is_some(), false);
    \n
    1.70.0 · source

    pub fn is_some_and(self, f: impl FnOnce(T) -> bool) -> bool

    Returns true if the option is a Some and the value inside of it matches a predicate.

    \n
    Examples
    \n
    let x: Option<u32> = Some(2);\nassert_eq!(x.is_some_and(|x| x > 1), true);\n\nlet x: Option<u32> = Some(0);\nassert_eq!(x.is_some_and(|x| x > 1), false);\n\nlet x: Option<u32> = None;\nassert_eq!(x.is_some_and(|x| x > 1), false);
    \n
    1.0.0 (const: 1.48.0) · source

    pub const fn is_none(&self) -> bool

    Returns true if the option is a None value.

    \n
    Examples
    \n
    let x: Option<u32> = Some(2);\nassert_eq!(x.is_none(), false);\n\nlet x: Option<u32> = None;\nassert_eq!(x.is_none(), true);
    \n
    1.0.0 (const: 1.48.0) · source

    pub const fn as_ref(&self) -> Option<&T>

    Converts from &Option<T> to Option<&T>.

    \n
    Examples
    \n

    Calculates the length of an Option<String> as an Option<usize>\nwithout moving the String. The map method takes the self argument by value,\nconsuming the original, so this technique uses as_ref to first take an Option to a\nreference to the value inside the original.

    \n\n
    let text: Option<String> = Some(\"Hello, world!\".to_string());\n// First, cast `Option<String>` to `Option<&String>` with `as_ref`,\n// then consume *that* with `map`, leaving `text` on the stack.\nlet text_length: Option<usize> = text.as_ref().map(|s| s.len());\nprintln!(\"still can print text: {text:?}\");
    \n
    1.0.0 (const: unstable) · source

    pub fn as_mut(&mut self) -> Option<&mut T>

    Converts from &mut Option<T> to Option<&mut T>.

    \n
    Examples
    \n
    let mut x = Some(2);\nmatch x.as_mut() {\n    Some(v) => *v = 42,\n    None => {},\n}\nassert_eq!(x, Some(42));
    \n
    1.33.0 (const: unstable) · source

    pub fn as_pin_ref(self: Pin<&Option<T>>) -> Option<Pin<&T>>

    Converts from Pin<&Option<T>> to Option<Pin<&T>>.

    \n
    1.33.0 (const: unstable) · source

    pub fn as_pin_mut(self: Pin<&mut Option<T>>) -> Option<Pin<&mut T>>

    Converts from Pin<&mut Option<T>> to Option<Pin<&mut T>>.

    \n
    1.75.0 · source

    pub fn as_slice(&self) -> &[T]

    Returns a slice of the contained value, if any. If this is None, an\nempty slice is returned. This can be useful to have a single type of\niterator over an Option or slice.

    \n

    Note: Should you have an Option<&T> and wish to get a slice of T,\nyou can unpack it via opt.map_or(&[], std::slice::from_ref).

    \n
    Examples
    \n
    assert_eq!(\n    [Some(1234).as_slice(), None.as_slice()],\n    [&[1234][..], &[][..]],\n);
    \n

    The inverse of this function is (discounting\nborrowing) [_]::first:

    \n\n
    for i in [Some(1234_u16), None] {\n    assert_eq!(i.as_ref(), i.as_slice().first());\n}
    \n
    1.75.0 · source

    pub fn as_mut_slice(&mut self) -> &mut [T]

    Returns a mutable slice of the contained value, if any. If this is\nNone, an empty slice is returned. This can be useful to have a\nsingle type of iterator over an Option or slice.

    \n

    Note: Should you have an Option<&mut T> instead of a\n&mut Option<T>, which this method takes, you can obtain a mutable\nslice via opt.map_or(&mut [], std::slice::from_mut).

    \n
    Examples
    \n
    assert_eq!(\n    [Some(1234).as_mut_slice(), None.as_mut_slice()],\n    [&mut [1234][..], &mut [][..]],\n);
    \n

    The result is a mutable slice of zero or one items that points into\nour original Option:

    \n\n
    let mut x = Some(1234);\nx.as_mut_slice()[0] += 1;\nassert_eq!(x, Some(1235));
    \n

    The inverse of this method (discounting borrowing)\nis [_]::first_mut:

    \n\n
    assert_eq!(Some(123).as_mut_slice().first_mut(), Some(&mut 123))
    \n
    1.0.0 (const: unstable) · source

    pub fn expect(self, msg: &str) -> T

    Returns the contained Some value, consuming the self value.

    \n
    Panics
    \n

    Panics if the value is a None with a custom panic message provided by\nmsg.

    \n
    Examples
    \n
    let x = Some(\"value\");\nassert_eq!(x.expect(\"fruits are healthy\"), \"value\");
    \n\n
    let x: Option<&str> = None;\nx.expect(\"fruits are healthy\"); // panics with `fruits are healthy`
    \n
    Recommended Message Style
    \n

    We recommend that expect messages are used to describe the reason you\nexpect the Option should be Some.

    \n\n
    let item = slice.get(0)\n    .expect(\"slice should not be empty\");
    \n

    Hint: If you’re having trouble remembering how to phrase expect\nerror messages remember to focus on the word “should” as in “env\nvariable should be set by blah” or “the given binary should be available\nand executable by the current user”.

    \n

    For more detail on expect message styles and the reasoning behind our\nrecommendation please refer to the section on “Common Message\nStyles” in the std::error module docs.

    \n
    1.0.0 (const: unstable) · source

    pub fn unwrap(self) -> T

    Returns the contained Some value, consuming the self value.

    \n

    Because this function may panic, its use is generally discouraged.\nInstead, prefer to use pattern matching and handle the None\ncase explicitly, or call unwrap_or, unwrap_or_else, or\nunwrap_or_default.

    \n
    Panics
    \n

    Panics if the self value equals None.

    \n
    Examples
    \n
    let x = Some(\"air\");\nassert_eq!(x.unwrap(), \"air\");
    \n\n
    let x: Option<&str> = None;\nassert_eq!(x.unwrap(), \"air\"); // fails
    \n
    1.0.0 · source

    pub fn unwrap_or(self, default: T) -> T

    Returns the contained Some value or a provided default.

    \n

    Arguments passed to unwrap_or are eagerly evaluated; if you are passing\nthe result of a function call, it is recommended to use unwrap_or_else,\nwhich is lazily evaluated.

    \n
    Examples
    \n
    assert_eq!(Some(\"car\").unwrap_or(\"bike\"), \"car\");\nassert_eq!(None.unwrap_or(\"bike\"), \"bike\");
    \n
    1.0.0 · source

    pub fn unwrap_or_else<F>(self, f: F) -> T
    where\n F: FnOnce() -> T,

    Returns the contained Some value or computes it from a closure.

    \n
    Examples
    \n
    let k = 10;\nassert_eq!(Some(4).unwrap_or_else(|| 2 * k), 4);\nassert_eq!(None.unwrap_or_else(|| 2 * k), 20);
    \n
    1.0.0 · source

    pub fn unwrap_or_default(self) -> T
    where\n T: Default,

    Returns the contained Some value or a default.

    \n

    Consumes the self argument then, if Some, returns the contained\nvalue, otherwise if None, returns the default value for that\ntype.

    \n
    Examples
    \n
    let x: Option<u32> = None;\nlet y: Option<u32> = Some(12);\n\nassert_eq!(x.unwrap_or_default(), 0);\nassert_eq!(y.unwrap_or_default(), 12);
    \n
    1.58.0 (const: unstable) · source

    pub unsafe fn unwrap_unchecked(self) -> T

    Returns the contained Some value, consuming the self value,\nwithout checking that the value is not None.

    \n
    Safety
    \n

    Calling this method on None is undefined behavior.

    \n
    Examples
    \n
    let x = Some(\"air\");\nassert_eq!(unsafe { x.unwrap_unchecked() }, \"air\");
    \n\n
    let x: Option<&str> = None;\nassert_eq!(unsafe { x.unwrap_unchecked() }, \"air\"); // Undefined behavior!
    \n
    1.0.0 · source

    pub fn map<U, F>(self, f: F) -> Option<U>
    where\n F: FnOnce(T) -> U,

    Maps an Option<T> to Option<U> by applying a function to a contained value (if Some) or returns None (if None).

    \n
    Examples
    \n

    Calculates the length of an Option<String> as an\nOption<usize>, consuming the original:

    \n\n
    let maybe_some_string = Some(String::from(\"Hello, World!\"));\n// `Option::map` takes self *by value*, consuming `maybe_some_string`\nlet maybe_some_len = maybe_some_string.map(|s| s.len());\nassert_eq!(maybe_some_len, Some(13));\n\nlet x: Option<&str> = None;\nassert_eq!(x.map(|s| s.len()), None);
    \n
    1.76.0 · source

    pub fn inspect<F>(self, f: F) -> Option<T>
    where\n F: FnOnce(&T),

    Calls the provided closure with a reference to the contained value (if Some).

    \n
    Examples
    \n
    let v = vec![1, 2, 3, 4, 5];\n\n// prints \"got: 4\"\nlet x: Option<&usize> = v.get(3).inspect(|x| println!(\"got: {x}\"));\n\n// prints nothing\nlet x: Option<&usize> = v.get(5).inspect(|x| println!(\"got: {x}\"));
    \n
    1.0.0 · source

    pub fn map_or<U, F>(self, default: U, f: F) -> U
    where\n F: FnOnce(T) -> U,

    Returns the provided default result (if none),\nor applies a function to the contained value (if any).

    \n

    Arguments passed to map_or are eagerly evaluated; if you are passing\nthe result of a function call, it is recommended to use map_or_else,\nwhich is lazily evaluated.

    \n
    Examples
    \n
    let x = Some(\"foo\");\nassert_eq!(x.map_or(42, |v| v.len()), 3);\n\nlet x: Option<&str> = None;\nassert_eq!(x.map_or(42, |v| v.len()), 42);
    \n
    1.0.0 · source

    pub fn map_or_else<U, D, F>(self, default: D, f: F) -> U
    where\n D: FnOnce() -> U,\n F: FnOnce(T) -> U,

    Computes a default function result (if none), or\napplies a different function to the contained value (if any).

    \n
    Basic examples
    \n
    let k = 21;\n\nlet x = Some(\"foo\");\nassert_eq!(x.map_or_else(|| 2 * k, |v| v.len()), 3);\n\nlet x: Option<&str> = None;\nassert_eq!(x.map_or_else(|| 2 * k, |v| v.len()), 42);
    \n
    Handling a Result-based fallback
    \n

    A somewhat common occurrence when dealing with optional values\nin combination with Result<T, E> is the case where one wants to invoke\na fallible fallback if the option is not present. This example\nparses a command line argument (if present), or the contents of a file to\nan integer. However, unlike accessing the command line argument, reading\nthe file is fallible, so it must be wrapped with Ok.

    \n\n
    let v: u64 = std::env::args()\n   .nth(1)\n   .map_or_else(|| std::fs::read_to_string(\"/etc/someconfig.conf\"), Ok)?\n   .parse()?;
    \n
    1.0.0 · source

    pub fn ok_or<E>(self, err: E) -> Result<T, E>

    Transforms the Option<T> into a Result<T, E>, mapping Some(v) to\nOk(v) and None to Err(err).

    \n

    Arguments passed to ok_or are eagerly evaluated; if you are passing the\nresult of a function call, it is recommended to use ok_or_else, which is\nlazily evaluated.

    \n
    Examples
    \n
    let x = Some(\"foo\");\nassert_eq!(x.ok_or(0), Ok(\"foo\"));\n\nlet x: Option<&str> = None;\nassert_eq!(x.ok_or(0), Err(0));
    \n
    1.0.0 · source

    pub fn ok_or_else<E, F>(self, err: F) -> Result<T, E>
    where\n F: FnOnce() -> E,

    Transforms the Option<T> into a Result<T, E>, mapping Some(v) to\nOk(v) and None to Err(err()).

    \n
    Examples
    \n
    let x = Some(\"foo\");\nassert_eq!(x.ok_or_else(|| 0), Ok(\"foo\"));\n\nlet x: Option<&str> = None;\nassert_eq!(x.ok_or_else(|| 0), Err(0));
    \n
    1.40.0 · source

    pub fn as_deref(&self) -> Option<&<T as Deref>::Target>
    where\n T: Deref,

    Converts from Option<T> (or &Option<T>) to Option<&T::Target>.

    \n

    Leaves the original Option in-place, creating a new one with a reference\nto the original one, additionally coercing the contents via Deref.

    \n
    Examples
    \n
    let x: Option<String> = Some(\"hey\".to_owned());\nassert_eq!(x.as_deref(), Some(\"hey\"));\n\nlet x: Option<String> = None;\nassert_eq!(x.as_deref(), None);
    \n
    1.40.0 · source

    pub fn as_deref_mut(&mut self) -> Option<&mut <T as Deref>::Target>
    where\n T: DerefMut,

    Converts from Option<T> (or &mut Option<T>) to Option<&mut T::Target>.

    \n

    Leaves the original Option in-place, creating a new one containing a mutable reference to\nthe inner type’s Deref::Target type.

    \n
    Examples
    \n
    let mut x: Option<String> = Some(\"hey\".to_owned());\nassert_eq!(x.as_deref_mut().map(|x| {\n    x.make_ascii_uppercase();\n    x\n}), Some(\"HEY\".to_owned().as_mut_str()));
    \n
    1.0.0 (const: unstable) · source

    pub fn iter(&self) -> Iter<'_, T>

    Returns an iterator over the possibly contained value.

    \n
    Examples
    \n
    let x = Some(4);\nassert_eq!(x.iter().next(), Some(&4));\n\nlet x: Option<u32> = None;\nassert_eq!(x.iter().next(), None);
    \n
    1.0.0 · source

    pub fn iter_mut(&mut self) -> IterMut<'_, T>

    Returns a mutable iterator over the possibly contained value.

    \n
    Examples
    \n
    let mut x = Some(4);\nmatch x.iter_mut().next() {\n    Some(v) => *v = 42,\n    None => {},\n}\nassert_eq!(x, Some(42));\n\nlet mut x: Option<u32> = None;\nassert_eq!(x.iter_mut().next(), None);
    \n
    1.0.0 · source

    pub fn and<U>(self, optb: Option<U>) -> Option<U>

    Returns None if the option is None, otherwise returns optb.

    \n

    Arguments passed to and are eagerly evaluated; if you are passing the\nresult of a function call, it is recommended to use and_then, which is\nlazily evaluated.

    \n
    Examples
    \n
    let x = Some(2);\nlet y: Option<&str> = None;\nassert_eq!(x.and(y), None);\n\nlet x: Option<u32> = None;\nlet y = Some(\"foo\");\nassert_eq!(x.and(y), None);\n\nlet x = Some(2);\nlet y = Some(\"foo\");\nassert_eq!(x.and(y), Some(\"foo\"));\n\nlet x: Option<u32> = None;\nlet y: Option<&str> = None;\nassert_eq!(x.and(y), None);
    \n
    1.0.0 · source

    pub fn and_then<U, F>(self, f: F) -> Option<U>
    where\n F: FnOnce(T) -> Option<U>,

    Returns None if the option is None, otherwise calls f with the\nwrapped value and returns the result.

    \n

    Some languages call this operation flatmap.

    \n
    Examples
    \n
    fn sq_then_to_string(x: u32) -> Option<String> {\n    x.checked_mul(x).map(|sq| sq.to_string())\n}\n\nassert_eq!(Some(2).and_then(sq_then_to_string), Some(4.to_string()));\nassert_eq!(Some(1_000_000).and_then(sq_then_to_string), None); // overflowed!\nassert_eq!(None.and_then(sq_then_to_string), None);
    \n

    Often used to chain fallible operations that may return None.

    \n\n
    let arr_2d = [[\"A0\", \"A1\"], [\"B0\", \"B1\"]];\n\nlet item_0_1 = arr_2d.get(0).and_then(|row| row.get(1));\nassert_eq!(item_0_1, Some(&\"A1\"));\n\nlet item_2_0 = arr_2d.get(2).and_then(|row| row.get(0));\nassert_eq!(item_2_0, None);
    \n
    1.27.0 · source

    pub fn filter<P>(self, predicate: P) -> Option<T>
    where\n P: FnOnce(&T) -> bool,

    Returns None if the option is None, otherwise calls predicate\nwith the wrapped value and returns:

    \n
      \n
    • Some(t) if predicate returns true (where t is the wrapped\nvalue), and
    • \n
    • None if predicate returns false.
    • \n
    \n

    This function works similar to Iterator::filter(). You can imagine\nthe Option<T> being an iterator over one or zero elements. filter()\nlets you decide which elements to keep.

    \n
    Examples
    \n
    fn is_even(n: &i32) -> bool {\n    n % 2 == 0\n}\n\nassert_eq!(None.filter(is_even), None);\nassert_eq!(Some(3).filter(is_even), None);\nassert_eq!(Some(4).filter(is_even), Some(4));
    \n
    1.0.0 · source

    pub fn or(self, optb: Option<T>) -> Option<T>

    Returns the option if it contains a value, otherwise returns optb.

    \n

    Arguments passed to or are eagerly evaluated; if you are passing the\nresult of a function call, it is recommended to use or_else, which is\nlazily evaluated.

    \n
    Examples
    \n
    let x = Some(2);\nlet y = None;\nassert_eq!(x.or(y), Some(2));\n\nlet x = None;\nlet y = Some(100);\nassert_eq!(x.or(y), Some(100));\n\nlet x = Some(2);\nlet y = Some(100);\nassert_eq!(x.or(y), Some(2));\n\nlet x: Option<u32> = None;\nlet y = None;\nassert_eq!(x.or(y), None);
    \n
    1.0.0 · source

    pub fn or_else<F>(self, f: F) -> Option<T>
    where\n F: FnOnce() -> Option<T>,

    Returns the option if it contains a value, otherwise calls f and\nreturns the result.

    \n
    Examples
    \n
    fn nobody() -> Option<&'static str> { None }\nfn vikings() -> Option<&'static str> { Some(\"vikings\") }\n\nassert_eq!(Some(\"barbarians\").or_else(vikings), Some(\"barbarians\"));\nassert_eq!(None.or_else(vikings), Some(\"vikings\"));\nassert_eq!(None.or_else(nobody), None);
    \n
    1.37.0 · source

    pub fn xor(self, optb: Option<T>) -> Option<T>

    Returns Some if exactly one of self, optb is Some, otherwise returns None.

    \n
    Examples
    \n
    let x = Some(2);\nlet y: Option<u32> = None;\nassert_eq!(x.xor(y), Some(2));\n\nlet x: Option<u32> = None;\nlet y = Some(2);\nassert_eq!(x.xor(y), Some(2));\n\nlet x = Some(2);\nlet y = Some(2);\nassert_eq!(x.xor(y), None);\n\nlet x: Option<u32> = None;\nlet y: Option<u32> = None;\nassert_eq!(x.xor(y), None);
    \n
    1.53.0 · source

    pub fn insert(&mut self, value: T) -> &mut T

    Inserts value into the option, then returns a mutable reference to it.

    \n

    If the option already contains a value, the old value is dropped.

    \n

    See also Option::get_or_insert, which doesn’t update the value if\nthe option already contains Some.

    \n
    Example
    \n
    let mut opt = None;\nlet val = opt.insert(1);\nassert_eq!(*val, 1);\nassert_eq!(opt.unwrap(), 1);\nlet val = opt.insert(2);\nassert_eq!(*val, 2);\n*val = 3;\nassert_eq!(opt.unwrap(), 3);
    \n
    1.20.0 · source

    pub fn get_or_insert(&mut self, value: T) -> &mut T

    Inserts value into the option if it is None, then\nreturns a mutable reference to the contained value.

    \n

    See also Option::insert, which updates the value even if\nthe option already contains Some.

    \n
    Examples
    \n
    let mut x = None;\n\n{\n    let y: &mut u32 = x.get_or_insert(5);\n    assert_eq!(y, &5);\n\n    *y = 7;\n}\n\nassert_eq!(x, Some(7));
    \n
    source

    pub fn get_or_insert_default(&mut self) -> &mut T
    where\n T: Default,

    🔬This is a nightly-only experimental API. (option_get_or_insert_default)

    Inserts the default value into the option if it is None, then\nreturns a mutable reference to the contained value.

    \n
    Examples
    \n
    #![feature(option_get_or_insert_default)]\n\nlet mut x = None;\n\n{\n    let y: &mut u32 = x.get_or_insert_default();\n    assert_eq!(y, &0);\n\n    *y = 7;\n}\n\nassert_eq!(x, Some(7));
    \n
    1.20.0 · source

    pub fn get_or_insert_with<F>(&mut self, f: F) -> &mut T
    where\n F: FnOnce() -> T,

    Inserts a value computed from f into the option if it is None,\nthen returns a mutable reference to the contained value.

    \n
    Examples
    \n
    let mut x = None;\n\n{\n    let y: &mut u32 = x.get_or_insert_with(|| 5);\n    assert_eq!(y, &5);\n\n    *y = 7;\n}\n\nassert_eq!(x, Some(7));
    \n
    1.0.0 (const: unstable) · source

    pub fn take(&mut self) -> Option<T>

    Takes the value out of the option, leaving a None in its place.

    \n
    Examples
    \n
    let mut x = Some(2);\nlet y = x.take();\nassert_eq!(x, None);\nassert_eq!(y, Some(2));\n\nlet mut x: Option<u32> = None;\nlet y = x.take();\nassert_eq!(x, None);\nassert_eq!(y, None);
    \n
    source

    pub fn take_if<P>(&mut self, predicate: P) -> Option<T>
    where\n P: FnOnce(&mut T) -> bool,

    🔬This is a nightly-only experimental API. (option_take_if)

    Takes the value out of the option, but only if the predicate evaluates to\ntrue on a mutable reference to the value.

    \n

    In other words, replaces self with None if the predicate returns true.\nThis method operates similar to Option::take but conditional.

    \n
    Examples
    \n
    #![feature(option_take_if)]\n\nlet mut x = Some(42);\n\nlet prev = x.take_if(|v| if *v == 42 {\n    *v += 1;\n    false\n} else {\n    false\n});\nassert_eq!(x, Some(43));\nassert_eq!(prev, None);\n\nlet prev = x.take_if(|v| *v == 43);\nassert_eq!(x, None);\nassert_eq!(prev, Some(43));
    \n
    1.31.0 (const: unstable) · source

    pub fn replace(&mut self, value: T) -> Option<T>

    Replaces the actual value in the option by the value given in parameter,\nreturning the old value if present,\nleaving a Some in its place without deinitializing either one.

    \n
    Examples
    \n
    let mut x = Some(2);\nlet old = x.replace(5);\nassert_eq!(x, Some(5));\nassert_eq!(old, Some(2));\n\nlet mut x = None;\nlet old = x.replace(3);\nassert_eq!(x, Some(3));\nassert_eq!(old, None);
    \n
    1.46.0 · source

    pub fn zip<U>(self, other: Option<U>) -> Option<(T, U)>

    Zips self with another Option.

    \n

    If self is Some(s) and other is Some(o), this method returns Some((s, o)).\nOtherwise, None is returned.

    \n
    Examples
    \n
    let x = Some(1);\nlet y = Some(\"hi\");\nlet z = None::<u8>;\n\nassert_eq!(x.zip(y), Some((1, \"hi\")));\nassert_eq!(x.zip(z), None);
    \n
    source

    pub fn zip_with<U, F, R>(self, other: Option<U>, f: F) -> Option<R>
    where\n F: FnOnce(T, U) -> R,

    🔬This is a nightly-only experimental API. (option_zip)

    Zips self and another Option with function f.

    \n

    If self is Some(s) and other is Some(o), this method returns Some(f(s, o)).\nOtherwise, None is returned.

    \n
    Examples
    \n
    #![feature(option_zip)]\n\n#[derive(Debug, PartialEq)]\nstruct Point {\n    x: f64,\n    y: f64,\n}\n\nimpl Point {\n    fn new(x: f64, y: f64) -> Self {\n        Self { x, y }\n    }\n}\n\nlet x = Some(17.5);\nlet y = Some(42.7);\n\nassert_eq!(x.zip_with(y, Point::new), Some(Point { x: 17.5, y: 42.7 }));\nassert_eq!(x.zip_with(None, Point::new), None);
    \n
    ",0,"numpy::npyffi::objects::PyArray_GetItemFunc","numpy::npyffi::objects::PyArray_SetItemFunc","numpy::npyffi::objects::PyArray_CopySwapNFunc","numpy::npyffi::objects::PyArray_CopySwapFunc","numpy::npyffi::objects::PyArray_NonzeroFunc","numpy::npyffi::objects::PyArray_CompareFunc","numpy::npyffi::objects::PyArray_ArgFunc","numpy::npyffi::objects::PyArray_DotFunc","numpy::npyffi::objects::PyArray_VectorUnaryFunc","numpy::npyffi::objects::PyArray_ScanFunc","numpy::npyffi::objects::PyArray_FromStrFunc","numpy::npyffi::objects::PyArray_FillFunc","numpy::npyffi::objects::PyArray_SortFunc","numpy::npyffi::objects::PyArray_ArgSortFunc","numpy::npyffi::objects::PyArray_PartitionFunc","numpy::npyffi::objects::PyArray_ArgPartitionFunc","numpy::npyffi::objects::PyArray_FillWithScalarFunc","numpy::npyffi::objects::PyArray_ScalarKindFunc","numpy::npyffi::objects::PyArray_FastClipFunc","numpy::npyffi::objects::PyArray_FastPutmaskFunc","numpy::npyffi::objects::PyArray_FastTakeFunc","numpy::npyffi::objects::PyUFuncGenericFunction","numpy::npyffi::objects::PyUFunc_MaskedStridedInnerLoopFunc","numpy::npyffi::objects::PyUFunc_TypeResolutionFunc","numpy::npyffi::objects::PyUFunc_LegacyInnerLoopSelectionFunc","numpy::npyffi::objects::PyUFunc_MaskedInnerLoopSelectionFunc","numpy::npyffi::objects::NpyIter_IterNextFunc","numpy::npyffi::objects::NpyIter_GetMultiIndexFunc","numpy::npyffi::objects::PyDataMem_EventHookFunc","numpy::npyffi::objects::npy_iter_get_dataptr_t","numpy::npyffi::objects::NpyAuxData_FreeFunc","numpy::npyffi::objects::NpyAuxData_CloneFunc"],["
    1.0.0 · source§

    impl<T> PartialOrd for Option<T>
    where\n T: PartialOrd,

    source§

    fn partial_cmp(&self, other: &Option<T>) -> Option<Ordering>

    This method returns an ordering between self and other values if one exists. Read more
    1.0.0 · source§

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

    This method tests less than (for self and other) and is used by the < operator. Read more
    1.0.0 · source§

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

    This method tests less than or equal to (for self and other) and is used by the <=\noperator. Read more
    1.0.0 · source§

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

    This method tests greater than (for self and other) and is used by the > operator. Read more
    1.0.0 · source§

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

    This method tests greater than or equal to (for self and other) and is used by the >=\noperator. Read more
    ","PartialOrd","numpy::npyffi::objects::PyArray_GetItemFunc","numpy::npyffi::objects::PyArray_SetItemFunc","numpy::npyffi::objects::PyArray_CopySwapNFunc","numpy::npyffi::objects::PyArray_CopySwapFunc","numpy::npyffi::objects::PyArray_NonzeroFunc","numpy::npyffi::objects::PyArray_CompareFunc","numpy::npyffi::objects::PyArray_ArgFunc","numpy::npyffi::objects::PyArray_DotFunc","numpy::npyffi::objects::PyArray_VectorUnaryFunc","numpy::npyffi::objects::PyArray_ScanFunc","numpy::npyffi::objects::PyArray_FromStrFunc","numpy::npyffi::objects::PyArray_FillFunc","numpy::npyffi::objects::PyArray_SortFunc","numpy::npyffi::objects::PyArray_ArgSortFunc","numpy::npyffi::objects::PyArray_PartitionFunc","numpy::npyffi::objects::PyArray_ArgPartitionFunc","numpy::npyffi::objects::PyArray_FillWithScalarFunc","numpy::npyffi::objects::PyArray_ScalarKindFunc","numpy::npyffi::objects::PyArray_FastClipFunc","numpy::npyffi::objects::PyArray_FastPutmaskFunc","numpy::npyffi::objects::PyArray_FastTakeFunc","numpy::npyffi::objects::PyUFuncGenericFunction","numpy::npyffi::objects::PyUFunc_MaskedStridedInnerLoopFunc","numpy::npyffi::objects::PyUFunc_TypeResolutionFunc","numpy::npyffi::objects::PyUFunc_LegacyInnerLoopSelectionFunc","numpy::npyffi::objects::PyUFunc_MaskedInnerLoopSelectionFunc","numpy::npyffi::objects::NpyIter_IterNextFunc","numpy::npyffi::objects::NpyIter_GetMultiIndexFunc","numpy::npyffi::objects::PyDataMem_EventHookFunc","numpy::npyffi::objects::npy_iter_get_dataptr_t","numpy::npyffi::objects::NpyAuxData_FreeFunc","numpy::npyffi::objects::NpyAuxData_CloneFunc"],["
    1.37.0 · source§

    impl<T, U> Product<Option<U>> for Option<T>
    where\n T: Product<U>,

    source§

    fn product<I>(iter: I) -> Option<T>
    where\n I: Iterator<Item = Option<U>>,

    Takes each element in the Iterator: if it is a None, no further\nelements are taken, and the None is returned. Should no None\noccur, the product of all elements is returned.

    \n
    Examples
    \n

    This multiplies each number in a vector of strings,\nif a string could not be parsed the operation returns None:

    \n\n
    let nums = vec![\"5\", \"10\", \"1\", \"2\"];\nlet total: Option<usize> = nums.iter().map(|w| w.parse::<usize>().ok()).product();\nassert_eq!(total, Some(100));\nlet nums = vec![\"5\", \"10\", \"one\", \"2\"];\nlet total: Option<usize> = nums.iter().map(|w| w.parse::<usize>().ok()).product();\nassert_eq!(total, None);
    \n
    ","Product>","numpy::npyffi::objects::PyArray_GetItemFunc","numpy::npyffi::objects::PyArray_SetItemFunc","numpy::npyffi::objects::PyArray_CopySwapNFunc","numpy::npyffi::objects::PyArray_CopySwapFunc","numpy::npyffi::objects::PyArray_NonzeroFunc","numpy::npyffi::objects::PyArray_CompareFunc","numpy::npyffi::objects::PyArray_ArgFunc","numpy::npyffi::objects::PyArray_DotFunc","numpy::npyffi::objects::PyArray_VectorUnaryFunc","numpy::npyffi::objects::PyArray_ScanFunc","numpy::npyffi::objects::PyArray_FromStrFunc","numpy::npyffi::objects::PyArray_FillFunc","numpy::npyffi::objects::PyArray_SortFunc","numpy::npyffi::objects::PyArray_ArgSortFunc","numpy::npyffi::objects::PyArray_PartitionFunc","numpy::npyffi::objects::PyArray_ArgPartitionFunc","numpy::npyffi::objects::PyArray_FillWithScalarFunc","numpy::npyffi::objects::PyArray_ScalarKindFunc","numpy::npyffi::objects::PyArray_FastClipFunc","numpy::npyffi::objects::PyArray_FastPutmaskFunc","numpy::npyffi::objects::PyArray_FastTakeFunc","numpy::npyffi::objects::PyUFuncGenericFunction","numpy::npyffi::objects::PyUFunc_MaskedStridedInnerLoopFunc","numpy::npyffi::objects::PyUFunc_TypeResolutionFunc","numpy::npyffi::objects::PyUFunc_LegacyInnerLoopSelectionFunc","numpy::npyffi::objects::PyUFunc_MaskedInnerLoopSelectionFunc","numpy::npyffi::objects::NpyIter_IterNextFunc","numpy::npyffi::objects::NpyIter_GetMultiIndexFunc","numpy::npyffi::objects::PyDataMem_EventHookFunc","numpy::npyffi::objects::npy_iter_get_dataptr_t","numpy::npyffi::objects::NpyAuxData_FreeFunc","numpy::npyffi::objects::NpyAuxData_CloneFunc"],["
    source§

    impl<T> FromResidual for Option<T>

    source§

    fn from_residual(residual: Option<Infallible>) -> Option<T>

    🔬This is a nightly-only experimental API. (try_trait_v2)
    Constructs the type from a compatible Residual type. Read more
    ","FromResidual","numpy::npyffi::objects::PyArray_GetItemFunc","numpy::npyffi::objects::PyArray_SetItemFunc","numpy::npyffi::objects::PyArray_CopySwapNFunc","numpy::npyffi::objects::PyArray_CopySwapFunc","numpy::npyffi::objects::PyArray_NonzeroFunc","numpy::npyffi::objects::PyArray_CompareFunc","numpy::npyffi::objects::PyArray_ArgFunc","numpy::npyffi::objects::PyArray_DotFunc","numpy::npyffi::objects::PyArray_VectorUnaryFunc","numpy::npyffi::objects::PyArray_ScanFunc","numpy::npyffi::objects::PyArray_FromStrFunc","numpy::npyffi::objects::PyArray_FillFunc","numpy::npyffi::objects::PyArray_SortFunc","numpy::npyffi::objects::PyArray_ArgSortFunc","numpy::npyffi::objects::PyArray_PartitionFunc","numpy::npyffi::objects::PyArray_ArgPartitionFunc","numpy::npyffi::objects::PyArray_FillWithScalarFunc","numpy::npyffi::objects::PyArray_ScalarKindFunc","numpy::npyffi::objects::PyArray_FastClipFunc","numpy::npyffi::objects::PyArray_FastPutmaskFunc","numpy::npyffi::objects::PyArray_FastTakeFunc","numpy::npyffi::objects::PyUFuncGenericFunction","numpy::npyffi::objects::PyUFunc_MaskedStridedInnerLoopFunc","numpy::npyffi::objects::PyUFunc_TypeResolutionFunc","numpy::npyffi::objects::PyUFunc_LegacyInnerLoopSelectionFunc","numpy::npyffi::objects::PyUFunc_MaskedInnerLoopSelectionFunc","numpy::npyffi::objects::NpyIter_IterNextFunc","numpy::npyffi::objects::NpyIter_GetMultiIndexFunc","numpy::npyffi::objects::PyDataMem_EventHookFunc","numpy::npyffi::objects::npy_iter_get_dataptr_t","numpy::npyffi::objects::NpyAuxData_FreeFunc","numpy::npyffi::objects::NpyAuxData_CloneFunc"],["
    source§

    impl<T> FromResidual<Yeet<()>> for Option<T>

    source§

    fn from_residual(_: Yeet<()>) -> Option<T>

    🔬This is a nightly-only experimental API. (try_trait_v2)
    Constructs the type from a compatible Residual type. Read more
    ","FromResidual>","numpy::npyffi::objects::PyArray_GetItemFunc","numpy::npyffi::objects::PyArray_SetItemFunc","numpy::npyffi::objects::PyArray_CopySwapNFunc","numpy::npyffi::objects::PyArray_CopySwapFunc","numpy::npyffi::objects::PyArray_NonzeroFunc","numpy::npyffi::objects::PyArray_CompareFunc","numpy::npyffi::objects::PyArray_ArgFunc","numpy::npyffi::objects::PyArray_DotFunc","numpy::npyffi::objects::PyArray_VectorUnaryFunc","numpy::npyffi::objects::PyArray_ScanFunc","numpy::npyffi::objects::PyArray_FromStrFunc","numpy::npyffi::objects::PyArray_FillFunc","numpy::npyffi::objects::PyArray_SortFunc","numpy::npyffi::objects::PyArray_ArgSortFunc","numpy::npyffi::objects::PyArray_PartitionFunc","numpy::npyffi::objects::PyArray_ArgPartitionFunc","numpy::npyffi::objects::PyArray_FillWithScalarFunc","numpy::npyffi::objects::PyArray_ScalarKindFunc","numpy::npyffi::objects::PyArray_FastClipFunc","numpy::npyffi::objects::PyArray_FastPutmaskFunc","numpy::npyffi::objects::PyArray_FastTakeFunc","numpy::npyffi::objects::PyUFuncGenericFunction","numpy::npyffi::objects::PyUFunc_MaskedStridedInnerLoopFunc","numpy::npyffi::objects::PyUFunc_TypeResolutionFunc","numpy::npyffi::objects::PyUFunc_LegacyInnerLoopSelectionFunc","numpy::npyffi::objects::PyUFunc_MaskedInnerLoopSelectionFunc","numpy::npyffi::objects::NpyIter_IterNextFunc","numpy::npyffi::objects::NpyIter_GetMultiIndexFunc","numpy::npyffi::objects::PyDataMem_EventHookFunc","numpy::npyffi::objects::npy_iter_get_dataptr_t","numpy::npyffi::objects::NpyAuxData_FreeFunc","numpy::npyffi::objects::NpyAuxData_CloneFunc"],["
    source§

    impl<T> Try for Option<T>

    §

    type Output = T

    🔬This is a nightly-only experimental API. (try_trait_v2)
    The type of the value produced by ? when not short-circuiting.
    §

    type Residual = Option<Infallible>

    🔬This is a nightly-only experimental API. (try_trait_v2)
    The type of the value passed to FromResidual::from_residual\nas part of ? when short-circuiting. Read more
    source§

    fn from_output(output: <Option<T> as Try>::Output) -> Option<T>

    🔬This is a nightly-only experimental API. (try_trait_v2)
    Constructs the type from its Output type. Read more
    source§

    fn branch(\n self\n) -> ControlFlow<<Option<T> as Try>::Residual, <Option<T> as Try>::Output>

    🔬This is a nightly-only experimental API. (try_trait_v2)
    Used in ? to decide whether the operator should produce a value\n(because this returned ControlFlow::Continue)\nor propagate a value back to the caller\n(because this returned ControlFlow::Break). Read more
    ","Try","numpy::npyffi::objects::PyArray_GetItemFunc","numpy::npyffi::objects::PyArray_SetItemFunc","numpy::npyffi::objects::PyArray_CopySwapNFunc","numpy::npyffi::objects::PyArray_CopySwapFunc","numpy::npyffi::objects::PyArray_NonzeroFunc","numpy::npyffi::objects::PyArray_CompareFunc","numpy::npyffi::objects::PyArray_ArgFunc","numpy::npyffi::objects::PyArray_DotFunc","numpy::npyffi::objects::PyArray_VectorUnaryFunc","numpy::npyffi::objects::PyArray_ScanFunc","numpy::npyffi::objects::PyArray_FromStrFunc","numpy::npyffi::objects::PyArray_FillFunc","numpy::npyffi::objects::PyArray_SortFunc","numpy::npyffi::objects::PyArray_ArgSortFunc","numpy::npyffi::objects::PyArray_PartitionFunc","numpy::npyffi::objects::PyArray_ArgPartitionFunc","numpy::npyffi::objects::PyArray_FillWithScalarFunc","numpy::npyffi::objects::PyArray_ScalarKindFunc","numpy::npyffi::objects::PyArray_FastClipFunc","numpy::npyffi::objects::PyArray_FastPutmaskFunc","numpy::npyffi::objects::PyArray_FastTakeFunc","numpy::npyffi::objects::PyUFuncGenericFunction","numpy::npyffi::objects::PyUFunc_MaskedStridedInnerLoopFunc","numpy::npyffi::objects::PyUFunc_TypeResolutionFunc","numpy::npyffi::objects::PyUFunc_LegacyInnerLoopSelectionFunc","numpy::npyffi::objects::PyUFunc_MaskedInnerLoopSelectionFunc","numpy::npyffi::objects::NpyIter_IterNextFunc","numpy::npyffi::objects::NpyIter_GetMultiIndexFunc","numpy::npyffi::objects::PyDataMem_EventHookFunc","numpy::npyffi::objects::npy_iter_get_dataptr_t","numpy::npyffi::objects::NpyAuxData_FreeFunc","numpy::npyffi::objects::NpyAuxData_CloneFunc"],["
    1.0.0 · source§

    impl<T> Clone for Option<T>
    where\n T: Clone,

    source§

    fn clone(&self) -> Option<T>

    Returns a copy of the value. Read more
    source§

    fn clone_from(&mut self, source: &Option<T>)

    Performs copy-assignment from source. Read more
    ","Clone","numpy::npyffi::objects::PyArray_GetItemFunc","numpy::npyffi::objects::PyArray_SetItemFunc","numpy::npyffi::objects::PyArray_CopySwapNFunc","numpy::npyffi::objects::PyArray_CopySwapFunc","numpy::npyffi::objects::PyArray_NonzeroFunc","numpy::npyffi::objects::PyArray_CompareFunc","numpy::npyffi::objects::PyArray_ArgFunc","numpy::npyffi::objects::PyArray_DotFunc","numpy::npyffi::objects::PyArray_VectorUnaryFunc","numpy::npyffi::objects::PyArray_ScanFunc","numpy::npyffi::objects::PyArray_FromStrFunc","numpy::npyffi::objects::PyArray_FillFunc","numpy::npyffi::objects::PyArray_SortFunc","numpy::npyffi::objects::PyArray_ArgSortFunc","numpy::npyffi::objects::PyArray_PartitionFunc","numpy::npyffi::objects::PyArray_ArgPartitionFunc","numpy::npyffi::objects::PyArray_FillWithScalarFunc","numpy::npyffi::objects::PyArray_ScalarKindFunc","numpy::npyffi::objects::PyArray_FastClipFunc","numpy::npyffi::objects::PyArray_FastPutmaskFunc","numpy::npyffi::objects::PyArray_FastTakeFunc","numpy::npyffi::objects::PyUFuncGenericFunction","numpy::npyffi::objects::PyUFunc_MaskedStridedInnerLoopFunc","numpy::npyffi::objects::PyUFunc_TypeResolutionFunc","numpy::npyffi::objects::PyUFunc_LegacyInnerLoopSelectionFunc","numpy::npyffi::objects::PyUFunc_MaskedInnerLoopSelectionFunc","numpy::npyffi::objects::NpyIter_IterNextFunc","numpy::npyffi::objects::NpyIter_GetMultiIndexFunc","numpy::npyffi::objects::PyDataMem_EventHookFunc","numpy::npyffi::objects::npy_iter_get_dataptr_t","numpy::npyffi::objects::NpyAuxData_FreeFunc","numpy::npyffi::objects::NpyAuxData_CloneFunc"],["
    1.0.0 · source§

    impl<A, V> FromIterator<Option<A>> for Option<V>
    where\n V: FromIterator<A>,

    source§

    fn from_iter<I>(iter: I) -> Option<V>
    where\n I: IntoIterator<Item = Option<A>>,

    Takes each element in the Iterator: if it is None,\nno further elements are taken, and the None is\nreturned. Should no None occur, a container of type\nV containing the values of each Option is returned.

    \n
    Examples
    \n

    Here is an example which increments every integer in a vector.\nWe use the checked variant of add that returns None when the\ncalculation would result in an overflow.

    \n\n
    let items = vec![0_u16, 1, 2];\n\nlet res: Option<Vec<u16>> = items\n    .iter()\n    .map(|x| x.checked_add(1))\n    .collect();\n\nassert_eq!(res, Some(vec![1, 2, 3]));
    \n

    As you can see, this will return the expected, valid items.

    \n

    Here is another example that tries to subtract one from another list\nof integers, this time checking for underflow:

    \n\n
    let items = vec![2_u16, 1, 0];\n\nlet res: Option<Vec<u16>> = items\n    .iter()\n    .map(|x| x.checked_sub(1))\n    .collect();\n\nassert_eq!(res, None);
    \n

    Since the last element is zero, it would underflow. Thus, the resulting\nvalue is None.

    \n

    Here is a variation on the previous example, showing that no\nfurther elements are taken from iter after the first None.

    \n\n
    let items = vec![3_u16, 2, 1, 10];\n\nlet mut shared = 0;\n\nlet res: Option<Vec<u16>> = items\n    .iter()\n    .map(|x| { shared += x; x.checked_sub(2) })\n    .collect();\n\nassert_eq!(res, None);\nassert_eq!(shared, 6);
    \n

    Since the third element caused an underflow, no further elements were taken,\nso the final value of shared is 6 (= 3 + 2 + 1), not 16.

    \n
    ","FromIterator>","numpy::npyffi::objects::PyArray_GetItemFunc","numpy::npyffi::objects::PyArray_SetItemFunc","numpy::npyffi::objects::PyArray_CopySwapNFunc","numpy::npyffi::objects::PyArray_CopySwapFunc","numpy::npyffi::objects::PyArray_NonzeroFunc","numpy::npyffi::objects::PyArray_CompareFunc","numpy::npyffi::objects::PyArray_ArgFunc","numpy::npyffi::objects::PyArray_DotFunc","numpy::npyffi::objects::PyArray_VectorUnaryFunc","numpy::npyffi::objects::PyArray_ScanFunc","numpy::npyffi::objects::PyArray_FromStrFunc","numpy::npyffi::objects::PyArray_FillFunc","numpy::npyffi::objects::PyArray_SortFunc","numpy::npyffi::objects::PyArray_ArgSortFunc","numpy::npyffi::objects::PyArray_PartitionFunc","numpy::npyffi::objects::PyArray_ArgPartitionFunc","numpy::npyffi::objects::PyArray_FillWithScalarFunc","numpy::npyffi::objects::PyArray_ScalarKindFunc","numpy::npyffi::objects::PyArray_FastClipFunc","numpy::npyffi::objects::PyArray_FastPutmaskFunc","numpy::npyffi::objects::PyArray_FastTakeFunc","numpy::npyffi::objects::PyUFuncGenericFunction","numpy::npyffi::objects::PyUFunc_MaskedStridedInnerLoopFunc","numpy::npyffi::objects::PyUFunc_TypeResolutionFunc","numpy::npyffi::objects::PyUFunc_LegacyInnerLoopSelectionFunc","numpy::npyffi::objects::PyUFunc_MaskedInnerLoopSelectionFunc","numpy::npyffi::objects::NpyIter_IterNextFunc","numpy::npyffi::objects::NpyIter_GetMultiIndexFunc","numpy::npyffi::objects::PyDataMem_EventHookFunc","numpy::npyffi::objects::npy_iter_get_dataptr_t","numpy::npyffi::objects::NpyAuxData_FreeFunc","numpy::npyffi::objects::NpyAuxData_CloneFunc"],["
    1.0.0 · source§

    impl<T> StructuralEq for Option<T>

    ","StructuralEq","numpy::npyffi::objects::PyArray_GetItemFunc","numpy::npyffi::objects::PyArray_SetItemFunc","numpy::npyffi::objects::PyArray_CopySwapNFunc","numpy::npyffi::objects::PyArray_CopySwapFunc","numpy::npyffi::objects::PyArray_NonzeroFunc","numpy::npyffi::objects::PyArray_CompareFunc","numpy::npyffi::objects::PyArray_ArgFunc","numpy::npyffi::objects::PyArray_DotFunc","numpy::npyffi::objects::PyArray_VectorUnaryFunc","numpy::npyffi::objects::PyArray_ScanFunc","numpy::npyffi::objects::PyArray_FromStrFunc","numpy::npyffi::objects::PyArray_FillFunc","numpy::npyffi::objects::PyArray_SortFunc","numpy::npyffi::objects::PyArray_ArgSortFunc","numpy::npyffi::objects::PyArray_PartitionFunc","numpy::npyffi::objects::PyArray_ArgPartitionFunc","numpy::npyffi::objects::PyArray_FillWithScalarFunc","numpy::npyffi::objects::PyArray_ScalarKindFunc","numpy::npyffi::objects::PyArray_FastClipFunc","numpy::npyffi::objects::PyArray_FastPutmaskFunc","numpy::npyffi::objects::PyArray_FastTakeFunc","numpy::npyffi::objects::PyUFuncGenericFunction","numpy::npyffi::objects::PyUFunc_MaskedStridedInnerLoopFunc","numpy::npyffi::objects::PyUFunc_TypeResolutionFunc","numpy::npyffi::objects::PyUFunc_LegacyInnerLoopSelectionFunc","numpy::npyffi::objects::PyUFunc_MaskedInnerLoopSelectionFunc","numpy::npyffi::objects::NpyIter_IterNextFunc","numpy::npyffi::objects::NpyIter_GetMultiIndexFunc","numpy::npyffi::objects::PyDataMem_EventHookFunc","numpy::npyffi::objects::npy_iter_get_dataptr_t","numpy::npyffi::objects::NpyAuxData_FreeFunc","numpy::npyffi::objects::NpyAuxData_CloneFunc"],["
    1.0.0 · source§

    impl<T> Eq for Option<T>
    where\n T: Eq,

    ","Eq","numpy::npyffi::objects::PyArray_GetItemFunc","numpy::npyffi::objects::PyArray_SetItemFunc","numpy::npyffi::objects::PyArray_CopySwapNFunc","numpy::npyffi::objects::PyArray_CopySwapFunc","numpy::npyffi::objects::PyArray_NonzeroFunc","numpy::npyffi::objects::PyArray_CompareFunc","numpy::npyffi::objects::PyArray_ArgFunc","numpy::npyffi::objects::PyArray_DotFunc","numpy::npyffi::objects::PyArray_VectorUnaryFunc","numpy::npyffi::objects::PyArray_ScanFunc","numpy::npyffi::objects::PyArray_FromStrFunc","numpy::npyffi::objects::PyArray_FillFunc","numpy::npyffi::objects::PyArray_SortFunc","numpy::npyffi::objects::PyArray_ArgSortFunc","numpy::npyffi::objects::PyArray_PartitionFunc","numpy::npyffi::objects::PyArray_ArgPartitionFunc","numpy::npyffi::objects::PyArray_FillWithScalarFunc","numpy::npyffi::objects::PyArray_ScalarKindFunc","numpy::npyffi::objects::PyArray_FastClipFunc","numpy::npyffi::objects::PyArray_FastPutmaskFunc","numpy::npyffi::objects::PyArray_FastTakeFunc","numpy::npyffi::objects::PyUFuncGenericFunction","numpy::npyffi::objects::PyUFunc_MaskedStridedInnerLoopFunc","numpy::npyffi::objects::PyUFunc_TypeResolutionFunc","numpy::npyffi::objects::PyUFunc_LegacyInnerLoopSelectionFunc","numpy::npyffi::objects::PyUFunc_MaskedInnerLoopSelectionFunc","numpy::npyffi::objects::NpyIter_IterNextFunc","numpy::npyffi::objects::NpyIter_GetMultiIndexFunc","numpy::npyffi::objects::PyDataMem_EventHookFunc","numpy::npyffi::objects::npy_iter_get_dataptr_t","numpy::npyffi::objects::NpyAuxData_FreeFunc","numpy::npyffi::objects::NpyAuxData_CloneFunc"],["
    1.0.0 · source§

    impl<T> Hash for Option<T>
    where\n T: Hash,

    source§

    fn hash<__H>(&self, state: &mut __H)
    where\n __H: Hasher,

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

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

    Feeds a slice of this type into the given Hasher. Read more
    ","Hash","numpy::npyffi::objects::PyArray_GetItemFunc","numpy::npyffi::objects::PyArray_SetItemFunc","numpy::npyffi::objects::PyArray_CopySwapNFunc","numpy::npyffi::objects::PyArray_CopySwapFunc","numpy::npyffi::objects::PyArray_NonzeroFunc","numpy::npyffi::objects::PyArray_CompareFunc","numpy::npyffi::objects::PyArray_ArgFunc","numpy::npyffi::objects::PyArray_DotFunc","numpy::npyffi::objects::PyArray_VectorUnaryFunc","numpy::npyffi::objects::PyArray_ScanFunc","numpy::npyffi::objects::PyArray_FromStrFunc","numpy::npyffi::objects::PyArray_FillFunc","numpy::npyffi::objects::PyArray_SortFunc","numpy::npyffi::objects::PyArray_ArgSortFunc","numpy::npyffi::objects::PyArray_PartitionFunc","numpy::npyffi::objects::PyArray_ArgPartitionFunc","numpy::npyffi::objects::PyArray_FillWithScalarFunc","numpy::npyffi::objects::PyArray_ScalarKindFunc","numpy::npyffi::objects::PyArray_FastClipFunc","numpy::npyffi::objects::PyArray_FastPutmaskFunc","numpy::npyffi::objects::PyArray_FastTakeFunc","numpy::npyffi::objects::PyUFuncGenericFunction","numpy::npyffi::objects::PyUFunc_MaskedStridedInnerLoopFunc","numpy::npyffi::objects::PyUFunc_TypeResolutionFunc","numpy::npyffi::objects::PyUFunc_LegacyInnerLoopSelectionFunc","numpy::npyffi::objects::PyUFunc_MaskedInnerLoopSelectionFunc","numpy::npyffi::objects::NpyIter_IterNextFunc","numpy::npyffi::objects::NpyIter_GetMultiIndexFunc","numpy::npyffi::objects::PyDataMem_EventHookFunc","numpy::npyffi::objects::npy_iter_get_dataptr_t","numpy::npyffi::objects::NpyAuxData_FreeFunc","numpy::npyffi::objects::NpyAuxData_CloneFunc"],["
    1.0.0 · source§

    impl<T> Ord for Option<T>
    where\n T: Ord,

    source§

    fn cmp(&self, other: &Option<T>) -> Ordering

    This method returns an Ordering between self and other. Read more
    1.21.0 · source§

    fn max(self, other: Self) -> Self
    where\n Self: Sized,

    Compares and returns the maximum of two values. Read more
    1.21.0 · source§

    fn min(self, other: Self) -> Self
    where\n Self: Sized,

    Compares and returns the minimum of two values. Read more
    1.50.0 · source§

    fn clamp(self, min: Self, max: Self) -> Self
    where\n Self: Sized + PartialOrd,

    Restrict a value to a certain interval. Read more
    ","Ord","numpy::npyffi::objects::PyArray_GetItemFunc","numpy::npyffi::objects::PyArray_SetItemFunc","numpy::npyffi::objects::PyArray_CopySwapNFunc","numpy::npyffi::objects::PyArray_CopySwapFunc","numpy::npyffi::objects::PyArray_NonzeroFunc","numpy::npyffi::objects::PyArray_CompareFunc","numpy::npyffi::objects::PyArray_ArgFunc","numpy::npyffi::objects::PyArray_DotFunc","numpy::npyffi::objects::PyArray_VectorUnaryFunc","numpy::npyffi::objects::PyArray_ScanFunc","numpy::npyffi::objects::PyArray_FromStrFunc","numpy::npyffi::objects::PyArray_FillFunc","numpy::npyffi::objects::PyArray_SortFunc","numpy::npyffi::objects::PyArray_ArgSortFunc","numpy::npyffi::objects::PyArray_PartitionFunc","numpy::npyffi::objects::PyArray_ArgPartitionFunc","numpy::npyffi::objects::PyArray_FillWithScalarFunc","numpy::npyffi::objects::PyArray_ScalarKindFunc","numpy::npyffi::objects::PyArray_FastClipFunc","numpy::npyffi::objects::PyArray_FastPutmaskFunc","numpy::npyffi::objects::PyArray_FastTakeFunc","numpy::npyffi::objects::PyUFuncGenericFunction","numpy::npyffi::objects::PyUFunc_MaskedStridedInnerLoopFunc","numpy::npyffi::objects::PyUFunc_TypeResolutionFunc","numpy::npyffi::objects::PyUFunc_LegacyInnerLoopSelectionFunc","numpy::npyffi::objects::PyUFunc_MaskedInnerLoopSelectionFunc","numpy::npyffi::objects::NpyIter_IterNextFunc","numpy::npyffi::objects::NpyIter_GetMultiIndexFunc","numpy::npyffi::objects::PyDataMem_EventHookFunc","numpy::npyffi::objects::npy_iter_get_dataptr_t","numpy::npyffi::objects::NpyAuxData_FreeFunc","numpy::npyffi::objects::NpyAuxData_CloneFunc"],["
    1.0.0 · source§

    impl<T> PartialEq for Option<T>
    where\n T: PartialEq,

    source§

    fn eq(&self, other: &Option<T>) -> bool

    This method tests for self and other values to be equal, and is used\nby ==.
    1.0.0 · source§

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

    This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
    ","PartialEq","numpy::npyffi::objects::PyArray_GetItemFunc","numpy::npyffi::objects::PyArray_SetItemFunc","numpy::npyffi::objects::PyArray_CopySwapNFunc","numpy::npyffi::objects::PyArray_CopySwapFunc","numpy::npyffi::objects::PyArray_NonzeroFunc","numpy::npyffi::objects::PyArray_CompareFunc","numpy::npyffi::objects::PyArray_ArgFunc","numpy::npyffi::objects::PyArray_DotFunc","numpy::npyffi::objects::PyArray_VectorUnaryFunc","numpy::npyffi::objects::PyArray_ScanFunc","numpy::npyffi::objects::PyArray_FromStrFunc","numpy::npyffi::objects::PyArray_FillFunc","numpy::npyffi::objects::PyArray_SortFunc","numpy::npyffi::objects::PyArray_ArgSortFunc","numpy::npyffi::objects::PyArray_PartitionFunc","numpy::npyffi::objects::PyArray_ArgPartitionFunc","numpy::npyffi::objects::PyArray_FillWithScalarFunc","numpy::npyffi::objects::PyArray_ScalarKindFunc","numpy::npyffi::objects::PyArray_FastClipFunc","numpy::npyffi::objects::PyArray_FastPutmaskFunc","numpy::npyffi::objects::PyArray_FastTakeFunc","numpy::npyffi::objects::PyUFuncGenericFunction","numpy::npyffi::objects::PyUFunc_MaskedStridedInnerLoopFunc","numpy::npyffi::objects::PyUFunc_TypeResolutionFunc","numpy::npyffi::objects::PyUFunc_LegacyInnerLoopSelectionFunc","numpy::npyffi::objects::PyUFunc_MaskedInnerLoopSelectionFunc","numpy::npyffi::objects::NpyIter_IterNextFunc","numpy::npyffi::objects::NpyIter_GetMultiIndexFunc","numpy::npyffi::objects::PyDataMem_EventHookFunc","numpy::npyffi::objects::npy_iter_get_dataptr_t","numpy::npyffi::objects::NpyAuxData_FreeFunc","numpy::npyffi::objects::NpyAuxData_CloneFunc"],["
    1.0.0 · source§

    impl<T> IntoIterator for Option<T>

    source§

    fn into_iter(self) -> IntoIter<T>

    Returns a consuming iterator over the possibly contained value.

    \n
    Examples
    \n
    let x = Some(\"string\");\nlet v: Vec<&str> = x.into_iter().collect();\nassert_eq!(v, [\"string\"]);\n\nlet x = None;\nlet v: Vec<&str> = x.into_iter().collect();\nassert!(v.is_empty());
    \n
    §

    type Item = T

    The type of the elements being iterated over.
    §

    type IntoIter = IntoIter<T>

    Which kind of iterator are we turning this into?
    ","IntoIterator","numpy::npyffi::objects::PyArray_GetItemFunc","numpy::npyffi::objects::PyArray_SetItemFunc","numpy::npyffi::objects::PyArray_CopySwapNFunc","numpy::npyffi::objects::PyArray_CopySwapFunc","numpy::npyffi::objects::PyArray_NonzeroFunc","numpy::npyffi::objects::PyArray_CompareFunc","numpy::npyffi::objects::PyArray_ArgFunc","numpy::npyffi::objects::PyArray_DotFunc","numpy::npyffi::objects::PyArray_VectorUnaryFunc","numpy::npyffi::objects::PyArray_ScanFunc","numpy::npyffi::objects::PyArray_FromStrFunc","numpy::npyffi::objects::PyArray_FillFunc","numpy::npyffi::objects::PyArray_SortFunc","numpy::npyffi::objects::PyArray_ArgSortFunc","numpy::npyffi::objects::PyArray_PartitionFunc","numpy::npyffi::objects::PyArray_ArgPartitionFunc","numpy::npyffi::objects::PyArray_FillWithScalarFunc","numpy::npyffi::objects::PyArray_ScalarKindFunc","numpy::npyffi::objects::PyArray_FastClipFunc","numpy::npyffi::objects::PyArray_FastPutmaskFunc","numpy::npyffi::objects::PyArray_FastTakeFunc","numpy::npyffi::objects::PyUFuncGenericFunction","numpy::npyffi::objects::PyUFunc_MaskedStridedInnerLoopFunc","numpy::npyffi::objects::PyUFunc_TypeResolutionFunc","numpy::npyffi::objects::PyUFunc_LegacyInnerLoopSelectionFunc","numpy::npyffi::objects::PyUFunc_MaskedInnerLoopSelectionFunc","numpy::npyffi::objects::NpyIter_IterNextFunc","numpy::npyffi::objects::NpyIter_GetMultiIndexFunc","numpy::npyffi::objects::PyDataMem_EventHookFunc","numpy::npyffi::objects::npy_iter_get_dataptr_t","numpy::npyffi::objects::NpyAuxData_FreeFunc","numpy::npyffi::objects::NpyAuxData_CloneFunc"],["
    1.37.0 · source§

    impl<T, U> Sum<Option<U>> for Option<T>
    where\n T: Sum<U>,

    source§

    fn sum<I>(iter: I) -> Option<T>
    where\n I: Iterator<Item = Option<U>>,

    Takes each element in the Iterator: if it is a None, no further\nelements are taken, and the None is returned. Should no None\noccur, the sum of all elements is returned.

    \n
    Examples
    \n

    This sums up the position of the character ‘a’ in a vector of strings,\nif a word did not have the character ‘a’ the operation returns None:

    \n\n
    let words = vec![\"have\", \"a\", \"great\", \"day\"];\nlet total: Option<usize> = words.iter().map(|w| w.find('a')).sum();\nassert_eq!(total, Some(5));\nlet words = vec![\"have\", \"a\", \"good\", \"day\"];\nlet total: Option<usize> = words.iter().map(|w| w.find('a')).sum();\nassert_eq!(total, None);
    \n
    ","Sum>","numpy::npyffi::objects::PyArray_GetItemFunc","numpy::npyffi::objects::PyArray_SetItemFunc","numpy::npyffi::objects::PyArray_CopySwapNFunc","numpy::npyffi::objects::PyArray_CopySwapFunc","numpy::npyffi::objects::PyArray_NonzeroFunc","numpy::npyffi::objects::PyArray_CompareFunc","numpy::npyffi::objects::PyArray_ArgFunc","numpy::npyffi::objects::PyArray_DotFunc","numpy::npyffi::objects::PyArray_VectorUnaryFunc","numpy::npyffi::objects::PyArray_ScanFunc","numpy::npyffi::objects::PyArray_FromStrFunc","numpy::npyffi::objects::PyArray_FillFunc","numpy::npyffi::objects::PyArray_SortFunc","numpy::npyffi::objects::PyArray_ArgSortFunc","numpy::npyffi::objects::PyArray_PartitionFunc","numpy::npyffi::objects::PyArray_ArgPartitionFunc","numpy::npyffi::objects::PyArray_FillWithScalarFunc","numpy::npyffi::objects::PyArray_ScalarKindFunc","numpy::npyffi::objects::PyArray_FastClipFunc","numpy::npyffi::objects::PyArray_FastPutmaskFunc","numpy::npyffi::objects::PyArray_FastTakeFunc","numpy::npyffi::objects::PyUFuncGenericFunction","numpy::npyffi::objects::PyUFunc_MaskedStridedInnerLoopFunc","numpy::npyffi::objects::PyUFunc_TypeResolutionFunc","numpy::npyffi::objects::PyUFunc_LegacyInnerLoopSelectionFunc","numpy::npyffi::objects::PyUFunc_MaskedInnerLoopSelectionFunc","numpy::npyffi::objects::NpyIter_IterNextFunc","numpy::npyffi::objects::NpyIter_GetMultiIndexFunc","numpy::npyffi::objects::PyDataMem_EventHookFunc","numpy::npyffi::objects::npy_iter_get_dataptr_t","numpy::npyffi::objects::NpyAuxData_FreeFunc","numpy::npyffi::objects::NpyAuxData_CloneFunc"],["
    1.0.0 · source§

    impl<T> StructuralPartialEq for Option<T>

    ","StructuralPartialEq","numpy::npyffi::objects::PyArray_GetItemFunc","numpy::npyffi::objects::PyArray_SetItemFunc","numpy::npyffi::objects::PyArray_CopySwapNFunc","numpy::npyffi::objects::PyArray_CopySwapFunc","numpy::npyffi::objects::PyArray_NonzeroFunc","numpy::npyffi::objects::PyArray_CompareFunc","numpy::npyffi::objects::PyArray_ArgFunc","numpy::npyffi::objects::PyArray_DotFunc","numpy::npyffi::objects::PyArray_VectorUnaryFunc","numpy::npyffi::objects::PyArray_ScanFunc","numpy::npyffi::objects::PyArray_FromStrFunc","numpy::npyffi::objects::PyArray_FillFunc","numpy::npyffi::objects::PyArray_SortFunc","numpy::npyffi::objects::PyArray_ArgSortFunc","numpy::npyffi::objects::PyArray_PartitionFunc","numpy::npyffi::objects::PyArray_ArgPartitionFunc","numpy::npyffi::objects::PyArray_FillWithScalarFunc","numpy::npyffi::objects::PyArray_ScalarKindFunc","numpy::npyffi::objects::PyArray_FastClipFunc","numpy::npyffi::objects::PyArray_FastPutmaskFunc","numpy::npyffi::objects::PyArray_FastTakeFunc","numpy::npyffi::objects::PyUFuncGenericFunction","numpy::npyffi::objects::PyUFunc_MaskedStridedInnerLoopFunc","numpy::npyffi::objects::PyUFunc_TypeResolutionFunc","numpy::npyffi::objects::PyUFunc_LegacyInnerLoopSelectionFunc","numpy::npyffi::objects::PyUFunc_MaskedInnerLoopSelectionFunc","numpy::npyffi::objects::NpyIter_IterNextFunc","numpy::npyffi::objects::NpyIter_GetMultiIndexFunc","numpy::npyffi::objects::PyDataMem_EventHookFunc","numpy::npyffi::objects::npy_iter_get_dataptr_t","numpy::npyffi::objects::NpyAuxData_FreeFunc","numpy::npyffi::objects::NpyAuxData_CloneFunc"],["
    1.0.0 · source§

    impl<T> Debug for Option<T>
    where\n T: Debug,

    source§

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

    Formats the value using the given formatter. Read more
    ","Debug","numpy::npyffi::objects::PyArray_GetItemFunc","numpy::npyffi::objects::PyArray_SetItemFunc","numpy::npyffi::objects::PyArray_CopySwapNFunc","numpy::npyffi::objects::PyArray_CopySwapFunc","numpy::npyffi::objects::PyArray_NonzeroFunc","numpy::npyffi::objects::PyArray_CompareFunc","numpy::npyffi::objects::PyArray_ArgFunc","numpy::npyffi::objects::PyArray_DotFunc","numpy::npyffi::objects::PyArray_VectorUnaryFunc","numpy::npyffi::objects::PyArray_ScanFunc","numpy::npyffi::objects::PyArray_FromStrFunc","numpy::npyffi::objects::PyArray_FillFunc","numpy::npyffi::objects::PyArray_SortFunc","numpy::npyffi::objects::PyArray_ArgSortFunc","numpy::npyffi::objects::PyArray_PartitionFunc","numpy::npyffi::objects::PyArray_ArgPartitionFunc","numpy::npyffi::objects::PyArray_FillWithScalarFunc","numpy::npyffi::objects::PyArray_ScalarKindFunc","numpy::npyffi::objects::PyArray_FastClipFunc","numpy::npyffi::objects::PyArray_FastPutmaskFunc","numpy::npyffi::objects::PyArray_FastTakeFunc","numpy::npyffi::objects::PyUFuncGenericFunction","numpy::npyffi::objects::PyUFunc_MaskedStridedInnerLoopFunc","numpy::npyffi::objects::PyUFunc_TypeResolutionFunc","numpy::npyffi::objects::PyUFunc_LegacyInnerLoopSelectionFunc","numpy::npyffi::objects::PyUFunc_MaskedInnerLoopSelectionFunc","numpy::npyffi::objects::NpyIter_IterNextFunc","numpy::npyffi::objects::NpyIter_GetMultiIndexFunc","numpy::npyffi::objects::PyDataMem_EventHookFunc","numpy::npyffi::objects::npy_iter_get_dataptr_t","numpy::npyffi::objects::NpyAuxData_FreeFunc","numpy::npyffi::objects::NpyAuxData_CloneFunc"],["
    1.12.0 · source§

    impl<T> From<T> for Option<T>

    source§

    fn from(val: T) -> Option<T>

    Moves val into a new Some.

    \n
    Examples
    \n
    let o: Option<u8> = Option::from(67);\n\nassert_eq!(Some(67), o);
    \n
    ","From","numpy::npyffi::objects::PyArray_GetItemFunc","numpy::npyffi::objects::PyArray_SetItemFunc","numpy::npyffi::objects::PyArray_CopySwapNFunc","numpy::npyffi::objects::PyArray_CopySwapFunc","numpy::npyffi::objects::PyArray_NonzeroFunc","numpy::npyffi::objects::PyArray_CompareFunc","numpy::npyffi::objects::PyArray_ArgFunc","numpy::npyffi::objects::PyArray_DotFunc","numpy::npyffi::objects::PyArray_VectorUnaryFunc","numpy::npyffi::objects::PyArray_ScanFunc","numpy::npyffi::objects::PyArray_FromStrFunc","numpy::npyffi::objects::PyArray_FillFunc","numpy::npyffi::objects::PyArray_SortFunc","numpy::npyffi::objects::PyArray_ArgSortFunc","numpy::npyffi::objects::PyArray_PartitionFunc","numpy::npyffi::objects::PyArray_ArgPartitionFunc","numpy::npyffi::objects::PyArray_FillWithScalarFunc","numpy::npyffi::objects::PyArray_ScalarKindFunc","numpy::npyffi::objects::PyArray_FastClipFunc","numpy::npyffi::objects::PyArray_FastPutmaskFunc","numpy::npyffi::objects::PyArray_FastTakeFunc","numpy::npyffi::objects::PyUFuncGenericFunction","numpy::npyffi::objects::PyUFunc_MaskedStridedInnerLoopFunc","numpy::npyffi::objects::PyUFunc_TypeResolutionFunc","numpy::npyffi::objects::PyUFunc_LegacyInnerLoopSelectionFunc","numpy::npyffi::objects::PyUFunc_MaskedInnerLoopSelectionFunc","numpy::npyffi::objects::NpyIter_IterNextFunc","numpy::npyffi::objects::NpyIter_GetMultiIndexFunc","numpy::npyffi::objects::PyDataMem_EventHookFunc","numpy::npyffi::objects::npy_iter_get_dataptr_t","numpy::npyffi::objects::NpyAuxData_FreeFunc","numpy::npyffi::objects::NpyAuxData_CloneFunc"],["
    1.0.0 · source§

    impl<T> Copy for Option<T>
    where\n T: Copy,

    ","Copy","numpy::npyffi::objects::PyArray_GetItemFunc","numpy::npyffi::objects::PyArray_SetItemFunc","numpy::npyffi::objects::PyArray_CopySwapNFunc","numpy::npyffi::objects::PyArray_CopySwapFunc","numpy::npyffi::objects::PyArray_NonzeroFunc","numpy::npyffi::objects::PyArray_CompareFunc","numpy::npyffi::objects::PyArray_ArgFunc","numpy::npyffi::objects::PyArray_DotFunc","numpy::npyffi::objects::PyArray_VectorUnaryFunc","numpy::npyffi::objects::PyArray_ScanFunc","numpy::npyffi::objects::PyArray_FromStrFunc","numpy::npyffi::objects::PyArray_FillFunc","numpy::npyffi::objects::PyArray_SortFunc","numpy::npyffi::objects::PyArray_ArgSortFunc","numpy::npyffi::objects::PyArray_PartitionFunc","numpy::npyffi::objects::PyArray_ArgPartitionFunc","numpy::npyffi::objects::PyArray_FillWithScalarFunc","numpy::npyffi::objects::PyArray_ScalarKindFunc","numpy::npyffi::objects::PyArray_FastClipFunc","numpy::npyffi::objects::PyArray_FastPutmaskFunc","numpy::npyffi::objects::PyArray_FastTakeFunc","numpy::npyffi::objects::PyUFuncGenericFunction","numpy::npyffi::objects::PyUFunc_MaskedStridedInnerLoopFunc","numpy::npyffi::objects::PyUFunc_TypeResolutionFunc","numpy::npyffi::objects::PyUFunc_LegacyInnerLoopSelectionFunc","numpy::npyffi::objects::PyUFunc_MaskedInnerLoopSelectionFunc","numpy::npyffi::objects::NpyIter_IterNextFunc","numpy::npyffi::objects::NpyIter_GetMultiIndexFunc","numpy::npyffi::objects::PyDataMem_EventHookFunc","numpy::npyffi::objects::npy_iter_get_dataptr_t","numpy::npyffi::objects::NpyAuxData_FreeFunc","numpy::npyffi::objects::NpyAuxData_CloneFunc"],["
    1.0.0 · source§

    impl<T> Default for Option<T>

    source§

    fn default() -> Option<T>

    Returns None.

    \n
    Examples
    \n
    let opt: Option<u32> = Option::default();\nassert!(opt.is_none());
    \n
    ","Default","numpy::npyffi::objects::PyArray_GetItemFunc","numpy::npyffi::objects::PyArray_SetItemFunc","numpy::npyffi::objects::PyArray_CopySwapNFunc","numpy::npyffi::objects::PyArray_CopySwapFunc","numpy::npyffi::objects::PyArray_NonzeroFunc","numpy::npyffi::objects::PyArray_CompareFunc","numpy::npyffi::objects::PyArray_ArgFunc","numpy::npyffi::objects::PyArray_DotFunc","numpy::npyffi::objects::PyArray_VectorUnaryFunc","numpy::npyffi::objects::PyArray_ScanFunc","numpy::npyffi::objects::PyArray_FromStrFunc","numpy::npyffi::objects::PyArray_FillFunc","numpy::npyffi::objects::PyArray_SortFunc","numpy::npyffi::objects::PyArray_ArgSortFunc","numpy::npyffi::objects::PyArray_PartitionFunc","numpy::npyffi::objects::PyArray_ArgPartitionFunc","numpy::npyffi::objects::PyArray_FillWithScalarFunc","numpy::npyffi::objects::PyArray_ScalarKindFunc","numpy::npyffi::objects::PyArray_FastClipFunc","numpy::npyffi::objects::PyArray_FastPutmaskFunc","numpy::npyffi::objects::PyArray_FastTakeFunc","numpy::npyffi::objects::PyUFuncGenericFunction","numpy::npyffi::objects::PyUFunc_MaskedStridedInnerLoopFunc","numpy::npyffi::objects::PyUFunc_TypeResolutionFunc","numpy::npyffi::objects::PyUFunc_LegacyInnerLoopSelectionFunc","numpy::npyffi::objects::PyUFunc_MaskedInnerLoopSelectionFunc","numpy::npyffi::objects::NpyIter_IterNextFunc","numpy::npyffi::objects::NpyIter_GetMultiIndexFunc","numpy::npyffi::objects::PyDataMem_EventHookFunc","numpy::npyffi::objects::npy_iter_get_dataptr_t","numpy::npyffi::objects::NpyAuxData_FreeFunc","numpy::npyffi::objects::NpyAuxData_CloneFunc"],["
    §

    impl<'py, T> FromPyObject<'py> for Option<T>
    where\n T: FromPyObject<'py>,

    §

    fn extract_bound(obj: &Bound<'py, PyAny>) -> Result<Option<T>, PyErr>

    Extracts Self from the bound smart pointer obj. Read more
    §

    fn extract(ob: &'py PyAny) -> Result<Self, PyErr>

    Extracts Self from the source GIL Ref obj. Read more
    ","FromPyObject<'py>","numpy::npyffi::objects::PyArray_GetItemFunc","numpy::npyffi::objects::PyArray_SetItemFunc","numpy::npyffi::objects::PyArray_CopySwapNFunc","numpy::npyffi::objects::PyArray_CopySwapFunc","numpy::npyffi::objects::PyArray_NonzeroFunc","numpy::npyffi::objects::PyArray_CompareFunc","numpy::npyffi::objects::PyArray_ArgFunc","numpy::npyffi::objects::PyArray_DotFunc","numpy::npyffi::objects::PyArray_VectorUnaryFunc","numpy::npyffi::objects::PyArray_ScanFunc","numpy::npyffi::objects::PyArray_FromStrFunc","numpy::npyffi::objects::PyArray_FillFunc","numpy::npyffi::objects::PyArray_SortFunc","numpy::npyffi::objects::PyArray_ArgSortFunc","numpy::npyffi::objects::PyArray_PartitionFunc","numpy::npyffi::objects::PyArray_ArgPartitionFunc","numpy::npyffi::objects::PyArray_FillWithScalarFunc","numpy::npyffi::objects::PyArray_ScalarKindFunc","numpy::npyffi::objects::PyArray_FastClipFunc","numpy::npyffi::objects::PyArray_FastPutmaskFunc","numpy::npyffi::objects::PyArray_FastTakeFunc","numpy::npyffi::objects::PyUFuncGenericFunction","numpy::npyffi::objects::PyUFunc_MaskedStridedInnerLoopFunc","numpy::npyffi::objects::PyUFunc_TypeResolutionFunc","numpy::npyffi::objects::PyUFunc_LegacyInnerLoopSelectionFunc","numpy::npyffi::objects::PyUFunc_MaskedInnerLoopSelectionFunc","numpy::npyffi::objects::NpyIter_IterNextFunc","numpy::npyffi::objects::NpyIter_GetMultiIndexFunc","numpy::npyffi::objects::PyDataMem_EventHookFunc","numpy::npyffi::objects::npy_iter_get_dataptr_t","numpy::npyffi::objects::NpyAuxData_FreeFunc","numpy::npyffi::objects::NpyAuxData_CloneFunc"],["
    §

    impl<T> ToPyObject for Option<T>
    where\n T: ToPyObject,

    Option::Some<T> is converted like T.\nOption::None is converted to Python None.

    \n
    §

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

    Converts self into a Python object.
    ","ToPyObject","numpy::npyffi::objects::PyArray_GetItemFunc","numpy::npyffi::objects::PyArray_SetItemFunc","numpy::npyffi::objects::PyArray_CopySwapNFunc","numpy::npyffi::objects::PyArray_CopySwapFunc","numpy::npyffi::objects::PyArray_NonzeroFunc","numpy::npyffi::objects::PyArray_CompareFunc","numpy::npyffi::objects::PyArray_ArgFunc","numpy::npyffi::objects::PyArray_DotFunc","numpy::npyffi::objects::PyArray_VectorUnaryFunc","numpy::npyffi::objects::PyArray_ScanFunc","numpy::npyffi::objects::PyArray_FromStrFunc","numpy::npyffi::objects::PyArray_FillFunc","numpy::npyffi::objects::PyArray_SortFunc","numpy::npyffi::objects::PyArray_ArgSortFunc","numpy::npyffi::objects::PyArray_PartitionFunc","numpy::npyffi::objects::PyArray_ArgPartitionFunc","numpy::npyffi::objects::PyArray_FillWithScalarFunc","numpy::npyffi::objects::PyArray_ScalarKindFunc","numpy::npyffi::objects::PyArray_FastClipFunc","numpy::npyffi::objects::PyArray_FastPutmaskFunc","numpy::npyffi::objects::PyArray_FastTakeFunc","numpy::npyffi::objects::PyUFuncGenericFunction","numpy::npyffi::objects::PyUFunc_MaskedStridedInnerLoopFunc","numpy::npyffi::objects::PyUFunc_TypeResolutionFunc","numpy::npyffi::objects::PyUFunc_LegacyInnerLoopSelectionFunc","numpy::npyffi::objects::PyUFunc_MaskedInnerLoopSelectionFunc","numpy::npyffi::objects::NpyIter_IterNextFunc","numpy::npyffi::objects::NpyIter_GetMultiIndexFunc","numpy::npyffi::objects::PyDataMem_EventHookFunc","numpy::npyffi::objects::npy_iter_get_dataptr_t","numpy::npyffi::objects::NpyAuxData_FreeFunc","numpy::npyffi::objects::NpyAuxData_CloneFunc"],["
    §

    impl<T> IntoPy<Py<PyAny>> for Option<T>
    where\n T: IntoPy<Py<PyAny>>,

    §

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

    Performs the conversion.
    ","IntoPy>","numpy::npyffi::objects::PyArray_GetItemFunc","numpy::npyffi::objects::PyArray_SetItemFunc","numpy::npyffi::objects::PyArray_CopySwapNFunc","numpy::npyffi::objects::PyArray_CopySwapFunc","numpy::npyffi::objects::PyArray_NonzeroFunc","numpy::npyffi::objects::PyArray_CompareFunc","numpy::npyffi::objects::PyArray_ArgFunc","numpy::npyffi::objects::PyArray_DotFunc","numpy::npyffi::objects::PyArray_VectorUnaryFunc","numpy::npyffi::objects::PyArray_ScanFunc","numpy::npyffi::objects::PyArray_FromStrFunc","numpy::npyffi::objects::PyArray_FillFunc","numpy::npyffi::objects::PyArray_SortFunc","numpy::npyffi::objects::PyArray_ArgSortFunc","numpy::npyffi::objects::PyArray_PartitionFunc","numpy::npyffi::objects::PyArray_ArgPartitionFunc","numpy::npyffi::objects::PyArray_FillWithScalarFunc","numpy::npyffi::objects::PyArray_ScalarKindFunc","numpy::npyffi::objects::PyArray_FastClipFunc","numpy::npyffi::objects::PyArray_FastPutmaskFunc","numpy::npyffi::objects::PyArray_FastTakeFunc","numpy::npyffi::objects::PyUFuncGenericFunction","numpy::npyffi::objects::PyUFunc_MaskedStridedInnerLoopFunc","numpy::npyffi::objects::PyUFunc_TypeResolutionFunc","numpy::npyffi::objects::PyUFunc_LegacyInnerLoopSelectionFunc","numpy::npyffi::objects::PyUFunc_MaskedInnerLoopSelectionFunc","numpy::npyffi::objects::NpyIter_IterNextFunc","numpy::npyffi::objects::NpyIter_GetMultiIndexFunc","numpy::npyffi::objects::PyDataMem_EventHookFunc","numpy::npyffi::objects::npy_iter_get_dataptr_t","numpy::npyffi::objects::NpyAuxData_FreeFunc","numpy::npyffi::objects::NpyAuxData_CloneFunc"],["
    §

    impl<Value> IterOptionKind for Option<Value>

    §

    fn iter_tag(&self) -> IterOptionTag

    ","IterOptionKind","numpy::npyffi::objects::PyArray_GetItemFunc","numpy::npyffi::objects::PyArray_SetItemFunc","numpy::npyffi::objects::PyArray_CopySwapNFunc","numpy::npyffi::objects::PyArray_CopySwapFunc","numpy::npyffi::objects::PyArray_NonzeroFunc","numpy::npyffi::objects::PyArray_CompareFunc","numpy::npyffi::objects::PyArray_ArgFunc","numpy::npyffi::objects::PyArray_DotFunc","numpy::npyffi::objects::PyArray_VectorUnaryFunc","numpy::npyffi::objects::PyArray_ScanFunc","numpy::npyffi::objects::PyArray_FromStrFunc","numpy::npyffi::objects::PyArray_FillFunc","numpy::npyffi::objects::PyArray_SortFunc","numpy::npyffi::objects::PyArray_ArgSortFunc","numpy::npyffi::objects::PyArray_PartitionFunc","numpy::npyffi::objects::PyArray_ArgPartitionFunc","numpy::npyffi::objects::PyArray_FillWithScalarFunc","numpy::npyffi::objects::PyArray_ScalarKindFunc","numpy::npyffi::objects::PyArray_FastClipFunc","numpy::npyffi::objects::PyArray_FastPutmaskFunc","numpy::npyffi::objects::PyArray_FastTakeFunc","numpy::npyffi::objects::PyUFuncGenericFunction","numpy::npyffi::objects::PyUFunc_MaskedStridedInnerLoopFunc","numpy::npyffi::objects::PyUFunc_TypeResolutionFunc","numpy::npyffi::objects::PyUFunc_LegacyInnerLoopSelectionFunc","numpy::npyffi::objects::PyUFunc_MaskedInnerLoopSelectionFunc","numpy::npyffi::objects::NpyIter_IterNextFunc","numpy::npyffi::objects::NpyIter_GetMultiIndexFunc","numpy::npyffi::objects::PyDataMem_EventHookFunc","numpy::npyffi::objects::npy_iter_get_dataptr_t","numpy::npyffi::objects::NpyAuxData_FreeFunc","numpy::npyffi::objects::NpyAuxData_CloneFunc"],["
    §

    impl<Value> AsyncIterOptionKind for Option<Value>

    §

    fn async_iter_tag(&self) -> AsyncIterOptionTag

    ","AsyncIterOptionKind","numpy::npyffi::objects::PyArray_GetItemFunc","numpy::npyffi::objects::PyArray_SetItemFunc","numpy::npyffi::objects::PyArray_CopySwapNFunc","numpy::npyffi::objects::PyArray_CopySwapFunc","numpy::npyffi::objects::PyArray_NonzeroFunc","numpy::npyffi::objects::PyArray_CompareFunc","numpy::npyffi::objects::PyArray_ArgFunc","numpy::npyffi::objects::PyArray_DotFunc","numpy::npyffi::objects::PyArray_VectorUnaryFunc","numpy::npyffi::objects::PyArray_ScanFunc","numpy::npyffi::objects::PyArray_FromStrFunc","numpy::npyffi::objects::PyArray_FillFunc","numpy::npyffi::objects::PyArray_SortFunc","numpy::npyffi::objects::PyArray_ArgSortFunc","numpy::npyffi::objects::PyArray_PartitionFunc","numpy::npyffi::objects::PyArray_ArgPartitionFunc","numpy::npyffi::objects::PyArray_FillWithScalarFunc","numpy::npyffi::objects::PyArray_ScalarKindFunc","numpy::npyffi::objects::PyArray_FastClipFunc","numpy::npyffi::objects::PyArray_FastPutmaskFunc","numpy::npyffi::objects::PyArray_FastTakeFunc","numpy::npyffi::objects::PyUFuncGenericFunction","numpy::npyffi::objects::PyUFunc_MaskedStridedInnerLoopFunc","numpy::npyffi::objects::PyUFunc_TypeResolutionFunc","numpy::npyffi::objects::PyUFunc_LegacyInnerLoopSelectionFunc","numpy::npyffi::objects::PyUFunc_MaskedInnerLoopSelectionFunc","numpy::npyffi::objects::NpyIter_IterNextFunc","numpy::npyffi::objects::NpyIter_GetMultiIndexFunc","numpy::npyffi::objects::PyDataMem_EventHookFunc","numpy::npyffi::objects::npy_iter_get_dataptr_t","numpy::npyffi::objects::NpyAuxData_FreeFunc","numpy::npyffi::objects::NpyAuxData_CloneFunc"],["
    §

    impl<T> AsPyPointer for Option<T>
    where\n T: AsPyPointer,

    Convert None into a null pointer.

    \n
    §

    fn as_ptr(&self) -> *mut PyObject

    Returns the underlying FFI pointer as a borrowed pointer.
    ","AsPyPointer","numpy::npyffi::objects::PyArray_GetItemFunc","numpy::npyffi::objects::PyArray_SetItemFunc","numpy::npyffi::objects::PyArray_CopySwapNFunc","numpy::npyffi::objects::PyArray_CopySwapFunc","numpy::npyffi::objects::PyArray_NonzeroFunc","numpy::npyffi::objects::PyArray_CompareFunc","numpy::npyffi::objects::PyArray_ArgFunc","numpy::npyffi::objects::PyArray_DotFunc","numpy::npyffi::objects::PyArray_VectorUnaryFunc","numpy::npyffi::objects::PyArray_ScanFunc","numpy::npyffi::objects::PyArray_FromStrFunc","numpy::npyffi::objects::PyArray_FillFunc","numpy::npyffi::objects::PyArray_SortFunc","numpy::npyffi::objects::PyArray_ArgSortFunc","numpy::npyffi::objects::PyArray_PartitionFunc","numpy::npyffi::objects::PyArray_ArgPartitionFunc","numpy::npyffi::objects::PyArray_FillWithScalarFunc","numpy::npyffi::objects::PyArray_ScalarKindFunc","numpy::npyffi::objects::PyArray_FastClipFunc","numpy::npyffi::objects::PyArray_FastPutmaskFunc","numpy::npyffi::objects::PyArray_FastTakeFunc","numpy::npyffi::objects::PyUFuncGenericFunction","numpy::npyffi::objects::PyUFunc_MaskedStridedInnerLoopFunc","numpy::npyffi::objects::PyUFunc_TypeResolutionFunc","numpy::npyffi::objects::PyUFunc_LegacyInnerLoopSelectionFunc","numpy::npyffi::objects::PyUFunc_MaskedInnerLoopSelectionFunc","numpy::npyffi::objects::NpyIter_IterNextFunc","numpy::npyffi::objects::NpyIter_GetMultiIndexFunc","numpy::npyffi::objects::PyDataMem_EventHookFunc","numpy::npyffi::objects::npy_iter_get_dataptr_t","numpy::npyffi::objects::NpyAuxData_FreeFunc","numpy::npyffi::objects::NpyAuxData_CloneFunc"]] };if (window.register_type_impls) {window.register_type_impls(type_impls);} else {window.pending_type_impls = type_impls;}})() \ No newline at end of file diff --git a/type.impl/numpy/array/struct.PyArray.js b/type.impl/numpy/array/struct.PyArray.js index e66f72bf0..7fede5d2c 100644 --- a/type.impl/numpy/array/struct.PyArray.js +++ b/type.impl/numpy/array/struct.PyArray.js @@ -1,3 +1,3 @@ (function() {var type_impls = { -"numpy":[["
    source§

    impl<T, D> PyArray<T, D>

    source

    pub fn as_untyped(&self) -> &PyUntypedArray

    Access an untyped representation of this array.

    \n
    source

    pub fn to_owned(&self) -> Py<Self>

    Turn &PyArray<T,D> into Py<PyArray<T,D>>,\ni.e. a pointer into Python’s heap which is independent of the GIL lifetime.

    \n

    This method can be used to avoid lifetime annotations of function arguments\nor return values.

    \n
    Example
    \n
    use numpy::PyArray1;\nuse pyo3::{Py, Python};\n\nlet array: Py<PyArray1<f64>> = Python::with_gil(|py| {\n    PyArray1::zeros(py, 5, false).to_owned()\n});\n\nPython::with_gil(|py| {\n    assert_eq!(array.as_ref(py).readonly().as_slice().unwrap(), [0.0; 5]);\n});
    \n
    source

    pub unsafe fn from_owned_ptr<'py>(\n py: Python<'py>,\n ptr: *mut PyObject\n) -> &'py Self

    Constructs a reference to a PyArray from a raw pointer to a Python object.

    \n
    Safety
    \n

    This is a wrapper around [pyo3::FromPyPointer::from_owned_ptr_or_opt] and inherits its safety contract.

    \n
    source

    pub unsafe fn from_borrowed_ptr<'py>(\n py: Python<'py>,\n ptr: *mut PyObject\n) -> &'py Self

    Constructs a reference to a PyArray from a raw point to a Python object.

    \n
    Safety
    \n

    This is a wrapper around [pyo3::FromPyPointer::from_borrowed_ptr_or_opt] and inherits its safety contract.

    \n
    source

    pub fn data(&self) -> *mut T

    Returns a pointer to the first element of the array.

    \n
    ",0,"numpy::array::PyArray0","numpy::array::PyArray1","numpy::array::PyArray2","numpy::array::PyArray3","numpy::array::PyArray4","numpy::array::PyArray5","numpy::array::PyArray6","numpy::array::PyArrayDyn"],["
    source§

    impl<T: Element, D: Dimension> PyArray<T, D>

    source

    pub fn dims(&self) -> D

    Same as shape, but returns D instead of &[usize].

    \n
    source

    pub unsafe fn new<'py, ID>(py: Python<'py>, dims: ID, is_fortran: bool) -> &Self
    where\n ID: IntoDimension<Dim = D>,

    Creates a new uninitialized NumPy array.

    \n

    If is_fortran is true, then it has Fortran/column-major order,\notherwise it has C/row-major order.

    \n
    Safety
    \n

    The returned array will always be safe to be dropped as the elements must either\nbe trivially copyable (as indicated by <T as Element>::IS_COPY) or be pointers\ninto Python’s heap, which NumPy will automatically zero-initialize.

    \n

    However, the elements themselves will not be valid and should be initialized manually\nusing raw pointers obtained via uget_raw. Before that, all methods\nwhich produce references to the elements invoke undefined behaviour. In particular,\nzero-initialized pointers are not valid instances of PyObject.

    \n
    Example
    \n
    use numpy::PyArray3;\nuse pyo3::Python;\n\nPython::with_gil(|py| {\n    let arr = unsafe {\n        let arr = PyArray3::<i32>::new(py, [4, 5, 6], false);\n\n        for i in 0..4 {\n            for j in 0..5 {\n                for k in 0..6 {\n                    arr.uget_raw([i, j, k]).write((i * j * k) as i32);\n                }\n            }\n        }\n\n        arr\n    };\n\n    assert_eq!(arr.shape(), &[4, 5, 6]);\n});
    \n
    source

    pub unsafe fn borrow_from_array<'py, S>(\n array: &ArrayBase<S, D>,\n container: &'py PyAny\n) -> &'py Self
    where\n S: Data<Elem = T>,

    Creates a NumPy array backed by array and ties its ownership to the Python object container.

    \n
    Safety
    \n

    container is set as a base object of the returned array which must not be dropped until container is dropped.\nFurthermore, array must not be reallocated from the time this method is called and until container is dropped.

    \n
    Example
    \n
    #[pyclass]\nstruct Owner {\n    array: Array1<f64>,\n}\n\n#[pymethods]\nimpl Owner {\n    #[getter]\n    fn array<'py>(this: &'py PyCell<Self>) -> &'py PyArray1<f64> {\n        let array = &this.borrow().array;\n\n        // SAFETY: The memory backing `array` will stay valid as long as this object is alive\n        // as we do not modify `array` in any way which would cause it to be reallocated.\n        unsafe { PyArray1::borrow_from_array(array, this) }\n    }\n}
    \n
    source

    pub fn zeros<'py, ID>(py: Python<'py>, dims: ID, is_fortran: bool) -> &Self
    where\n ID: IntoDimension<Dim = D>,

    Construct a new NumPy array filled with zeros.

    \n

    If is_fortran is true, then it has Fortran/column-major order,\notherwise it has C/row-major order.

    \n

    For arrays of Python objects, this will fill the array\nwith valid pointers to zero-valued Python integer objects.

    \n

    See also numpy.zeros and PyArray_Zeros.

    \n
    Example
    \n
    use numpy::PyArray2;\nuse pyo3::Python;\n\nPython::with_gil(|py| {\n    let pyarray: &PyArray2<usize> = PyArray2::zeros(py, [2, 2], true);\n\n    assert_eq!(pyarray.readonly().as_slice().unwrap(), [0; 4]);\n});
    \n
    source

    pub unsafe fn as_slice(&self) -> Result<&[T], NotContiguousError>

    Returns an immutable view of the internal data as a slice.

    \n
    Safety
    \n

    Calling this method is undefined behaviour if the underlying array\nis aliased mutably by other instances of PyArray\nor concurrently modified by Python or other native code.

    \n

    Please consider the safe alternative PyReadonlyArray::as_slice.

    \n
    source

    pub unsafe fn as_slice_mut(&self) -> Result<&mut [T], NotContiguousError>

    Returns a mutable view of the internal data as a slice.

    \n
    Safety
    \n

    Calling this method is undefined behaviour if the underlying array\nis aliased immutably or mutably by other instances of PyArray\nor concurrently modified by Python or other native code.

    \n

    Please consider the safe alternative PyReadwriteArray::as_slice_mut.

    \n
    source

    pub fn from_owned_array<'py>(py: Python<'py>, arr: Array<T, D>) -> &'py Self

    Constructs a NumPy from an ndarray::Array

    \n

    This method uses the internal Vec of the ndarray::Array as the base object of the NumPy array.

    \n
    Example
    \n
    use numpy::PyArray;\nuse ndarray::array;\nuse pyo3::Python;\n\nPython::with_gil(|py| {\n    let pyarray = PyArray::from_owned_array(py, array![[1, 2], [3, 4]]);\n\n    assert_eq!(pyarray.readonly().as_array(), array![[1, 2], [3, 4]]);\n});
    \n
    source

    pub unsafe fn get(&self, index: impl NpyIndex<Dim = D>) -> Option<&T>

    Get a reference of the specified element if the given index is valid.

    \n
    Safety
    \n

    Calling this method is undefined behaviour if the underlying array\nis aliased mutably by other instances of PyArray\nor concurrently modified by Python or other native code.

    \n

    Consider using safe alternatives like PyReadonlyArray::get.

    \n
    Example
    \n
    use numpy::PyArray;\nuse pyo3::Python;\n\nPython::with_gil(|py| {\n    let pyarray = PyArray::arange(py, 0, 16, 1).reshape([2, 2, 4]).unwrap();\n\n    assert_eq!(unsafe { *pyarray.get([1, 0, 3]).unwrap() }, 11);\n});
    \n
    source

    pub unsafe fn get_mut(&self, index: impl NpyIndex<Dim = D>) -> Option<&mut T>

    Same as get, but returns Option<&mut T>.

    \n
    Safety
    \n

    Calling this method is undefined behaviour if the underlying array\nis aliased immutably or mutably by other instances of PyArray\nor concurrently modified by Python or other native code.

    \n

    Consider using safe alternatives like PyReadwriteArray::get_mut.

    \n
    Example
    \n
    use numpy::PyArray;\nuse pyo3::Python;\n\nPython::with_gil(|py| {\n    let pyarray = PyArray::arange(py, 0, 16, 1).reshape([2, 2, 4]).unwrap();\n\n    unsafe {\n        *pyarray.get_mut([1, 0, 3]).unwrap() = 42;\n    }\n\n    assert_eq!(unsafe { *pyarray.get([1, 0, 3]).unwrap() }, 42);\n});
    \n
    source

    pub unsafe fn uget<Idx>(&self, index: Idx) -> &T
    where\n Idx: NpyIndex<Dim = D>,

    Get an immutable reference of the specified element,\nwithout checking the given index.

    \n

    See NpyIndex for what types can be used as the index.

    \n
    Safety
    \n

    Passing an invalid index is undefined behavior.\nThe element must also have been initialized and\nall other references to it is must also be shared.

    \n

    See PyReadonlyArray::get for a safe alternative.

    \n
    Example
    \n
    use numpy::PyArray;\nuse pyo3::Python;\n\nPython::with_gil(|py| {\n    let pyarray = PyArray::arange(py, 0, 16, 1).reshape([2, 2, 4]).unwrap();\n\n    assert_eq!(unsafe { *pyarray.uget([1, 0, 3]) }, 11);\n});
    \n
    source

    pub unsafe fn uget_mut<Idx>(&self, index: Idx) -> &mut T
    where\n Idx: NpyIndex<Dim = D>,

    Same as uget, but returns &mut T.

    \n
    Safety
    \n

    Passing an invalid index is undefined behavior.\nThe element must also have been initialized and\nother references to it must not exist.

    \n

    See PyReadwriteArray::get_mut for a safe alternative.

    \n
    source

    pub unsafe fn uget_raw<Idx>(&self, index: Idx) -> *mut T
    where\n Idx: NpyIndex<Dim = D>,

    Same as uget, but returns *mut T.

    \n
    Safety
    \n

    Passing an invalid index is undefined behavior.

    \n
    source

    pub fn get_owned<Idx>(&self, index: Idx) -> Option<T>
    where\n Idx: NpyIndex<Dim = D>,

    Get a copy of the specified element in the array.

    \n

    See NpyIndex for what types can be used as the index.

    \n
    Example
    \n
    use numpy::PyArray;\nuse pyo3::Python;\n\nPython::with_gil(|py| {\n    let pyarray = PyArray::arange(py, 0, 16, 1).reshape([2, 2, 4]).unwrap();\n\n    assert_eq!(pyarray.get_owned([1, 0, 3]), Some(11));\n});
    \n
    source

    pub fn to_dyn(&self) -> &PyArray<T, IxDyn>

    Turn an array with fixed dimensionality into one with dynamic dimensionality.

    \n
    source

    pub fn to_vec(&self) -> Result<Vec<T>, NotContiguousError>

    Returns a copy of the internal data of the array as a Vec.

    \n

    Fails if the internal array is not contiguous. See also as_slice.

    \n
    Example
    \n
    use numpy::PyArray2;\nuse pyo3::Python;\n\nPython::with_gil(|py| {\n    let pyarray= py\n        .eval(\"__import__('numpy').array([[0, 1], [2, 3]], dtype='int64')\", None, None)\n        .unwrap()\n        .downcast::<PyArray2<i64>>()\n        .unwrap();\n\n    assert_eq!(pyarray.to_vec().unwrap(), vec![0, 1, 2, 3]);\n});
    \n
    source

    pub fn from_array<'py, S>(py: Python<'py>, arr: &ArrayBase<S, D>) -> &'py Self
    where\n S: Data<Elem = T>,

    Construct a NumPy array from a ndarray::ArrayBase.

    \n

    This method allocates memory in Python’s heap via the NumPy API,\nand then copies all elements of the array there.

    \n
    Example
    \n
    use numpy::PyArray;\nuse ndarray::array;\nuse pyo3::Python;\n\nPython::with_gil(|py| {\n    let pyarray = PyArray::from_array(py, &array![[1, 2], [3, 4]]);\n\n    assert_eq!(pyarray.readonly().as_array(), array![[1, 2], [3, 4]]);\n});
    \n
    source

    pub fn try_readonly(&self) -> Result<PyReadonlyArray<'_, T, D>, BorrowError>

    Get an immutable borrow of the NumPy array

    \n
    source

    pub fn readonly(&self) -> PyReadonlyArray<'_, T, D>

    Get an immutable borrow of the NumPy array

    \n
    Panics
    \n

    Panics if the allocation backing the array is currently mutably borrowed.

    \n

    For a non-panicking variant, use try_readonly.

    \n
    source

    pub fn try_readwrite(&self) -> Result<PyReadwriteArray<'_, T, D>, BorrowError>

    Get a mutable borrow of the NumPy array

    \n
    source

    pub fn readwrite(&self) -> PyReadwriteArray<'_, T, D>

    Get a mutable borrow of the NumPy array

    \n
    Panics
    \n

    Panics if the allocation backing the array is currently borrowed or\nif the array is flagged as not writeable.

    \n

    For a non-panicking variant, use try_readwrite.

    \n
    source

    pub unsafe fn as_array(&self) -> ArrayView<'_, T, D>

    Returns an ArrayView of the internal array.

    \n

    See also PyReadonlyArray::as_array.

    \n
    Safety
    \n

    Calling this method invalidates all exclusive references to the internal data, e.g. &mut [T] or ArrayViewMut.

    \n
    source

    pub unsafe fn as_array_mut(&self) -> ArrayViewMut<'_, T, D>

    Returns an ArrayViewMut of the internal array.

    \n

    See also PyReadwriteArray::as_array_mut.

    \n
    Safety
    \n

    Calling this method invalidates all other references to the internal data, e.g. ArrayView or ArrayViewMut.

    \n
    source

    pub fn as_raw_array(&self) -> RawArrayView<T, D>

    Returns the internal array as RawArrayView enabling element access via raw pointers

    \n
    source

    pub fn as_raw_array_mut(&self) -> RawArrayViewMut<T, D>

    Returns the internal array as RawArrayViewMut enabling element access via raw pointers

    \n
    source

    pub fn to_owned_array(&self) -> Array<T, D>

    Get a copy of the array as an ndarray::Array.

    \n
    Example
    \n
    use numpy::PyArray;\nuse ndarray::array;\nuse pyo3::Python;\n\nPython::with_gil(|py| {\n    let pyarray = PyArray::arange(py, 0, 4, 1).reshape([2, 2]).unwrap();\n\n    assert_eq!(\n        pyarray.to_owned_array(),\n        array![[0, 1], [2, 3]]\n    )\n});
    \n
    ",0,"numpy::array::PyArray0","numpy::array::PyArray1","numpy::array::PyArray2","numpy::array::PyArray3","numpy::array::PyArray4","numpy::array::PyArray5","numpy::array::PyArray6","numpy::array::PyArrayDyn"],["
    source§

    impl<N, D> PyArray<N, D>
    where\n N: Scalar + Element,\n D: Dimension,

    source

    pub unsafe fn try_as_matrix<R, C, RStride, CStride>(\n &self\n) -> Option<MatrixView<'_, N, R, C, RStride, CStride>>
    where\n R: Dim,\n C: Dim,\n RStride: Dim,\n CStride: Dim,

    Try to convert this array into a nalgebra::MatrixView using the given shape and strides.

    \n
    Safety
    \n

    Calling this method invalidates all exclusive references to the internal data, e.g. ArrayViewMut or MatrixSliceMut.

    \n
    source

    pub unsafe fn try_as_matrix_mut<R, C, RStride, CStride>(\n &self\n) -> Option<MatrixViewMut<'_, N, R, C, RStride, CStride>>
    where\n R: Dim,\n C: Dim,\n RStride: Dim,\n CStride: Dim,

    Try to convert this array into a nalgebra::MatrixViewMut using the given shape and strides.

    \n
    Safety
    \n

    Calling this method invalidates all other references to the internal data, e.g. ArrayView, MatrixSlice, ArrayViewMut or MatrixSliceMut.

    \n
    ",0,"numpy::array::PyArray0","numpy::array::PyArray1","numpy::array::PyArray2","numpy::array::PyArray3","numpy::array::PyArray4","numpy::array::PyArray5","numpy::array::PyArray6","numpy::array::PyArrayDyn"],["
    source§

    impl<D: Dimension> PyArray<PyObject, D>

    source

    pub fn from_owned_object_array<'py, T>(\n py: Python<'py>,\n arr: Array<Py<T>, D>\n) -> &'py Self

    Construct a NumPy array containing objects stored in a ndarray::Array

    \n

    This method uses the internal Vec of the ndarray::Array as the base object of the NumPy array.

    \n
    Example
    \n
    use ndarray::array;\nuse pyo3::{pyclass, Py, Python};\nuse numpy::PyArray;\n\n#[pyclass]\nstruct CustomElement {\n    foo: i32,\n    bar: f64,\n}\n\nPython::with_gil(|py| {\n    let array = array![\n        Py::new(py, CustomElement {\n            foo: 1,\n            bar: 2.0,\n        }).unwrap(),\n        Py::new(py, CustomElement {\n            foo: 3,\n            bar: 4.0,\n        }).unwrap(),\n    ];\n\n    let pyarray = PyArray::from_owned_object_array(py, array);\n\n    assert!(pyarray.readonly().as_array().get(0).unwrap().as_ref(py).is_instance_of::<CustomElement>());\n});
    \n
    ",0,"numpy::array::PyArray0","numpy::array::PyArray1","numpy::array::PyArray2","numpy::array::PyArray3","numpy::array::PyArray4","numpy::array::PyArray5","numpy::array::PyArray6","numpy::array::PyArrayDyn"],["
    source§

    impl<T: Copy + Element> PyArray<T, Ix0>

    source

    pub fn item(&self) -> T

    Get the single element of a zero-dimensional array.

    \n

    See inner for an example.

    \n
    ",0,"numpy::array::PyArray0"],["
    source§

    impl<T: Element> PyArray<T, Ix1>

    source

    pub fn from_slice<'py>(py: Python<'py>, slice: &[T]) -> &'py Self

    Construct a one-dimensional array from a slice.

    \n
    Example
    \n
    use numpy::PyArray;\nuse pyo3::Python;\n\nPython::with_gil(|py| {\n    let slice = &[1, 2, 3, 4, 5];\n    let pyarray = PyArray::from_slice(py, slice);\n    assert_eq!(pyarray.readonly().as_slice().unwrap(), &[1, 2, 3, 4, 5]);\n});
    \n
    source

    pub fn from_vec<'py>(py: Python<'py>, vec: Vec<T>) -> &'py Self

    Construct a one-dimensional array from a Vec<T>.

    \n
    Example
    \n
    use numpy::PyArray;\nuse pyo3::Python;\n\nPython::with_gil(|py| {\n    let vec = vec![1, 2, 3, 4, 5];\n    let pyarray = PyArray::from_vec(py, vec);\n    assert_eq!(pyarray.readonly().as_slice().unwrap(), &[1, 2, 3, 4, 5]);\n});
    \n
    source

    pub fn from_iter<'py, I>(py: Python<'py>, iter: I) -> &'py Self
    where\n I: IntoIterator<Item = T>,

    Construct a one-dimensional array from an Iterator.

    \n

    If no reliable size_hint is available,\nthis method can allocate memory multiple times, which can hurt performance.

    \n
    Example
    \n
    use numpy::PyArray;\nuse pyo3::Python;\n\nPython::with_gil(|py| {\n    let pyarray = PyArray::from_iter(py, \"abcde\".chars().map(u32::from));\n    assert_eq!(pyarray.readonly().as_slice().unwrap(), &[97, 98, 99, 100, 101]);\n});
    \n
    ",0,"numpy::array::PyArray1"],["
    source§

    impl<T: Element> PyArray<T, Ix2>

    source

    pub fn from_vec2<'py>(\n py: Python<'py>,\n v: &[Vec<T>]\n) -> Result<&'py Self, FromVecError>

    Construct a two-dimension array from a Vec<Vec<T>>.

    \n

    This function checks all dimensions of the inner vectors and returns\nan error if they are not all equal.

    \n
    Example
    \n
    use numpy::PyArray;\nuse pyo3::Python;\nuse ndarray::array;\n\nPython::with_gil(|py| {\n    let vec2 = vec![vec![11, 12], vec![21, 22]];\n    let pyarray = PyArray::from_vec2(py, &vec2).unwrap();\n    assert_eq!(pyarray.readonly().as_array(), array![[11, 12], [21, 22]]);\n\n    let ragged_vec2 = vec![vec![11, 12], vec![21]];\n    assert!(PyArray::from_vec2(py, &ragged_vec2).is_err());\n});
    \n
    ",0,"numpy::array::PyArray2"],["
    source§

    impl<T: Element> PyArray<T, Ix3>

    source

    pub fn from_vec3<'py>(\n py: Python<'py>,\n v: &[Vec<Vec<T>>]\n) -> Result<&'py Self, FromVecError>

    Construct a three-dimensional array from a Vec<Vec<Vec<T>>>.

    \n

    This function checks all dimensions of the inner vectors and returns\nan error if they are not all equal.

    \n
    Example
    \n
    use numpy::PyArray;\nuse pyo3::Python;\nuse ndarray::array;\n\nPython::with_gil(|py| {\n    let vec3 = vec![\n        vec![vec![111, 112], vec![121, 122]],\n        vec![vec![211, 212], vec![221, 222]],\n    ];\n    let pyarray = PyArray::from_vec3(py, &vec3).unwrap();\n    assert_eq!(\n        pyarray.readonly().as_array(),\n        array![[[111, 112], [121, 122]], [[211, 212], [221, 222]]]\n    );\n\n    let ragged_vec3 = vec![\n        vec![vec![111, 112], vec![121, 122]],\n        vec![vec![211], vec![221, 222]],\n    ];\n    assert!(PyArray::from_vec3(py, &ragged_vec3).is_err());\n});
    \n
    ",0,"numpy::array::PyArray3"],["
    source§

    impl<T: Element, D> PyArray<T, D>

    source

    pub fn copy_to<U: Element>(&self, other: &PyArray<U, D>) -> PyResult<()>

    Copies self into other, performing a data type conversion if necessary.

    \n

    See also PyArray_CopyInto.

    \n
    Example
    \n
    use numpy::PyArray;\nuse pyo3::Python;\n\nPython::with_gil(|py| {\n    let pyarray_f = PyArray::arange(py, 2.0, 5.0, 1.0);\n    let pyarray_i = unsafe { PyArray::<i64, _>::new(py, [3], false) };\n\n    assert!(pyarray_f.copy_to(pyarray_i).is_ok());\n\n    assert_eq!(pyarray_i.readonly().as_slice().unwrap(), &[2, 3, 4]);\n});
    \n
    source

    pub fn cast<'py, U: Element>(\n &'py self,\n is_fortran: bool\n) -> PyResult<&'py PyArray<U, D>>

    Cast the PyArray<T> to PyArray<U>, by allocating a new array.

    \n

    See also PyArray_CastToType.

    \n
    Example
    \n
    use numpy::PyArray;\nuse pyo3::Python;\n\nPython::with_gil(|py| {\n    let pyarray_f = PyArray::arange(py, 2.0, 5.0, 1.0);\n\n    let pyarray_i = pyarray_f.cast::<i32>(false).unwrap();\n\n    assert_eq!(pyarray_i.readonly().as_slice().unwrap(), &[2, 3, 4]);\n});
    \n
    source

    pub fn reshape_with_order<'py, ID: IntoDimension>(\n &'py self,\n dims: ID,\n order: NPY_ORDER\n) -> PyResult<&'py PyArray<T, ID::Dim>>

    Construct a new array which has same values as self,\nbut has different dimensions specified by dims\nand a possibly different memory order specified by order.

    \n

    See also numpy.reshape and PyArray_Newshape.

    \n
    Example
    \n
    use numpy::{npyffi::NPY_ORDER, PyArray};\nuse pyo3::Python;\nuse ndarray::array;\n\nPython::with_gil(|py| {\n    let array =\n        PyArray::from_iter(py, 0..9).reshape_with_order([3, 3], NPY_ORDER::NPY_FORTRANORDER).unwrap();\n\n    assert_eq!(array.readonly().as_array(), array![[0, 3, 6], [1, 4, 7], [2, 5, 8]]);\n    assert!(array.is_fortran_contiguous());\n\n    assert!(array.reshape([5]).is_err());\n});
    \n
    source

    pub fn reshape<'py, ID: IntoDimension>(\n &'py self,\n dims: ID\n) -> PyResult<&'py PyArray<T, ID::Dim>>

    Special case of reshape_with_order which keeps the memory order the same.

    \n
    source

    pub unsafe fn resize<ID: IntoDimension>(&self, dims: ID) -> PyResult<()>

    Extends or truncates the dimensions of an array.

    \n

    This method works only on contiguous arrays.\nMissing elements will be initialized as if calling zeros.

    \n

    See also ndarray.resize and PyArray_Resize.

    \n
    Safety
    \n

    There should be no outstanding references (shared or exclusive) into the array\nas this method might re-allocate it and thereby invalidate all pointers into it.

    \n
    Example
    \n
    use numpy::PyArray;\nuse pyo3::Python;\n\nPython::with_gil(|py| {\n    let pyarray = PyArray::<f64, _>::zeros(py, (10, 10), false);\n    assert_eq!(pyarray.shape(), [10, 10]);\n\n    unsafe {\n        pyarray.resize((100, 100)).unwrap();\n    }\n    assert_eq!(pyarray.shape(), [100, 100]);\n});
    \n
    ",0,"numpy::array::PyArray0","numpy::array::PyArray1","numpy::array::PyArray2","numpy::array::PyArray3","numpy::array::PyArray4","numpy::array::PyArray5","numpy::array::PyArray6","numpy::array::PyArrayDyn"],["
    source§

    impl<T: Element + AsPrimitive<f64>> PyArray<T, Ix1>

    source

    pub fn arange<'py>(py: Python<'py>, start: T, stop: T, step: T) -> &Self

    Return evenly spaced values within a given interval.

    \n

    See numpy.arange for the Python API and PyArray_Arange for the C API.

    \n
    Example
    \n
    use numpy::PyArray;\nuse pyo3::Python;\n\nPython::with_gil(|py| {\n    let pyarray = PyArray::arange(py, 2.0, 4.0, 0.5);\n    assert_eq!(pyarray.readonly().as_slice().unwrap(), &[2.0, 2.5, 3.0, 3.5]);\n\n    let pyarray = PyArray::arange(py, -2, 4, 3);\n    assert_eq!(pyarray.readonly().as_slice().unwrap(), &[-2, 1]);\n});
    \n
    ",0,"numpy::array::PyArray1"],["
    source§

    impl<T, D> AsRef<PyAny> for PyArray<T, D>

    source§

    fn as_ref(&self) -> &PyAny

    Converts this type into a shared reference of the (usually inferred) input type.
    ","AsRef","numpy::array::PyArray0","numpy::array::PyArray1","numpy::array::PyArray2","numpy::array::PyArray3","numpy::array::PyArray4","numpy::array::PyArray5","numpy::array::PyArray6","numpy::array::PyArrayDyn"],["
    source§

    impl<T, D> IntoPy<Py<PyAny>> for PyArray<T, D>

    source§

    fn into_py<'py>(self, py: Python<'py>) -> PyObject

    Performs the conversion.
    ","IntoPy>","numpy::array::PyArray0","numpy::array::PyArray1","numpy::array::PyArray2","numpy::array::PyArray3","numpy::array::PyArray4","numpy::array::PyArray5","numpy::array::PyArray6","numpy::array::PyArrayDyn"],["
    source§

    impl<T, D> Display for PyArray<T, D>

    source§

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

    Formats the value using the given formatter. Read more
    ","Display","numpy::array::PyArray0","numpy::array::PyArray1","numpy::array::PyArray2","numpy::array::PyArray3","numpy::array::PyArray4","numpy::array::PyArray5","numpy::array::PyArray6","numpy::array::PyArrayDyn"],["
    source§

    impl<T, D> Debug for PyArray<T, D>

    source§

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

    Formats the value using the given formatter. Read more
    ","Debug","numpy::array::PyArray0","numpy::array::PyArray1","numpy::array::PyArray2","numpy::array::PyArray3","numpy::array::PyArray4","numpy::array::PyArray5","numpy::array::PyArray6","numpy::array::PyArrayDyn"],["
    source§

    impl<T, D> ToPyObject for PyArray<T, D>

    source§

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

    Converts self into a Python object.
    ","ToPyObject","numpy::array::PyArray0","numpy::array::PyArray1","numpy::array::PyArray2","numpy::array::PyArray3","numpy::array::PyArray4","numpy::array::PyArray5","numpy::array::PyArray6","numpy::array::PyArrayDyn"],["
    source§

    impl<T, D> Deref for PyArray<T, D>

    §

    type Target = PyUntypedArray

    The resulting type after dereferencing.
    source§

    fn deref(&self) -> &Self::Target

    Dereferences the value.
    ","Deref","numpy::array::PyArray0","numpy::array::PyArray1","numpy::array::PyArray2","numpy::array::PyArray3","numpy::array::PyArray4","numpy::array::PyArray5","numpy::array::PyArray6","numpy::array::PyArrayDyn"],["
    source§

    impl<T: Element, D: Dimension> PyTypeInfo for PyArray<T, D>

    source§

    const NAME: &'static str = "PyArray<T, D>"

    Class name.
    source§

    const MODULE: Option<&'static str> = _

    Module name, if any.
    source§

    fn type_object_raw<'py>(py: Python<'py>) -> *mut PyTypeObject

    Returns the PyTypeObject instance for this type.
    source§

    fn is_type_of_bound(ob: &Bound<'_, PyAny>) -> bool

    Checks if object is an instance of this type or a subclass of this type.
    §

    fn type_object(py: Python<'_>) -> &PyType

    Returns the safe abstraction over the type object.
    §

    fn type_object_bound(py: Python<'_>) -> Bound<'_, PyType>

    Returns the safe abstraction over the type object.
    §

    fn is_type_of(object: &PyAny) -> bool

    Checks if object is an instance of this type or a subclass of this type.
    §

    fn is_exact_type_of(object: &PyAny) -> bool

    Checks if object is an instance of this type.
    §

    fn is_exact_type_of_bound(object: &Bound<'_, PyAny>) -> bool

    Checks if object is an instance of this type.
    ","PyTypeInfo","numpy::array::PyArray0","numpy::array::PyArray1","numpy::array::PyArray2","numpy::array::PyArray3","numpy::array::PyArray4","numpy::array::PyArray5","numpy::array::PyArray6","numpy::array::PyArrayDyn"],["
    source§

    impl<T, D> AsPyPointer for PyArray<T, D>

    source§

    fn as_ptr(&self) -> *mut PyObject

    Returns the underlying FFI pointer as a borrowed pointer.
    ","AsPyPointer","numpy::array::PyArray0","numpy::array::PyArray1","numpy::array::PyArray2","numpy::array::PyArray3","numpy::array::PyArray4","numpy::array::PyArray5","numpy::array::PyArray6","numpy::array::PyArrayDyn"],["
    source§

    impl<T, D> DerefToPyAny for PyArray<T, D>

    ","DerefToPyAny","numpy::array::PyArray0","numpy::array::PyArray1","numpy::array::PyArray2","numpy::array::PyArray3","numpy::array::PyArray4","numpy::array::PyArray5","numpy::array::PyArray6","numpy::array::PyArrayDyn"],["
    source§

    impl<T, D> PyNativeType for PyArray<T, D>

    §

    type AsRefSource = PyArray<T, D>

    The form of this which is stored inside a Py<T> smart pointer.
    §

    fn as_borrowed(&self) -> Borrowed<'_, '_, Self::AsRefSource>

    Cast &self to a Borrowed smart pointer. Read more
    §

    fn py(&self) -> Python<'_>

    Returns a GIL marker constrained to the lifetime of this type.
    §

    unsafe fn unchecked_downcast(obj: &PyAny) -> &Self

    Cast &PyAny to &Self without no type checking. Read more
    ","PyNativeType","numpy::array::PyArray0","numpy::array::PyArray1","numpy::array::PyArray2","numpy::array::PyArray3","numpy::array::PyArray4","numpy::array::PyArray5","numpy::array::PyArray6","numpy::array::PyArrayDyn"]] +"numpy":[["
    source§

    impl<T, D> PyArray<T, D>

    source

    pub fn as_untyped(&self) -> &PyUntypedArray

    Access an untyped representation of this array.

    \n
    source

    pub fn to_owned(&self) -> Py<Self>

    Turn &PyArray<T,D> into Py<PyArray<T,D>>,\ni.e. a pointer into Python’s heap which is independent of the GIL lifetime.

    \n

    This method can be used to avoid lifetime annotations of function arguments\nor return values.

    \n
    Example
    \n
    use numpy::PyArray1;\nuse pyo3::{Py, Python};\n\nlet array: Py<PyArray1<f64>> = Python::with_gil(|py| {\n    PyArray1::zeros(py, 5, false).to_owned()\n});\n\nPython::with_gil(|py| {\n    assert_eq!(array.as_ref(py).readonly().as_slice().unwrap(), [0.0; 5]);\n});
    \n
    source

    pub unsafe fn from_owned_ptr<'py>(\n py: Python<'py>,\n ptr: *mut PyObject\n) -> &'py Self

    Constructs a reference to a PyArray from a raw pointer to a Python object.

    \n
    Safety
    \n

    This is a wrapper around [pyo3::FromPyPointer::from_owned_ptr_or_opt] and inherits its safety contract.

    \n
    source

    pub unsafe fn from_borrowed_ptr<'py>(\n py: Python<'py>,\n ptr: *mut PyObject\n) -> &'py Self

    Constructs a reference to a PyArray from a raw point to a Python object.

    \n
    Safety
    \n

    This is a wrapper around [pyo3::FromPyPointer::from_borrowed_ptr_or_opt] and inherits its safety contract.

    \n
    source

    pub fn data(&self) -> *mut T

    Returns a pointer to the first element of the array.

    \n
    ",0,"numpy::array::PyArray0","numpy::array::PyArray1","numpy::array::PyArray2","numpy::array::PyArray3","numpy::array::PyArray4","numpy::array::PyArray5","numpy::array::PyArray6","numpy::array::PyArrayDyn"],["
    source§

    impl<T: Element, D: Dimension> PyArray<T, D>

    source

    pub fn dims(&self) -> D

    Same as shape, but returns D instead of &[usize].

    \n
    source

    pub unsafe fn new<'py, ID>(py: Python<'py>, dims: ID, is_fortran: bool) -> &Self
    where\n ID: IntoDimension<Dim = D>,

    Creates a new uninitialized NumPy array.

    \n

    If is_fortran is true, then it has Fortran/column-major order,\notherwise it has C/row-major order.

    \n
    Safety
    \n

    The returned array will always be safe to be dropped as the elements must either\nbe trivially copyable (as indicated by <T as Element>::IS_COPY) or be pointers\ninto Python’s heap, which NumPy will automatically zero-initialize.

    \n

    However, the elements themselves will not be valid and should be initialized manually\nusing raw pointers obtained via uget_raw. Before that, all methods\nwhich produce references to the elements invoke undefined behaviour. In particular,\nzero-initialized pointers are not valid instances of PyObject.

    \n
    Example
    \n
    use numpy::PyArray3;\nuse pyo3::Python;\n\nPython::with_gil(|py| {\n    let arr = unsafe {\n        let arr = PyArray3::<i32>::new(py, [4, 5, 6], false);\n\n        for i in 0..4 {\n            for j in 0..5 {\n                for k in 0..6 {\n                    arr.uget_raw([i, j, k]).write((i * j * k) as i32);\n                }\n            }\n        }\n\n        arr\n    };\n\n    assert_eq!(arr.shape(), &[4, 5, 6]);\n});
    \n
    source

    pub unsafe fn borrow_from_array<'py, S>(\n array: &ArrayBase<S, D>,\n container: &'py PyAny\n) -> &'py Self
    where\n S: Data<Elem = T>,

    Creates a NumPy array backed by array and ties its ownership to the Python object container.

    \n
    Safety
    \n

    container is set as a base object of the returned array which must not be dropped until container is dropped.\nFurthermore, array must not be reallocated from the time this method is called and until container is dropped.

    \n
    Example
    \n
    #[pyclass]\nstruct Owner {\n    array: Array1<f64>,\n}\n\n#[pymethods]\nimpl Owner {\n    #[getter]\n    fn array<'py>(this: &'py PyCell<Self>) -> &'py PyArray1<f64> {\n        let array = &this.borrow().array;\n\n        // SAFETY: The memory backing `array` will stay valid as long as this object is alive\n        // as we do not modify `array` in any way which would cause it to be reallocated.\n        unsafe { PyArray1::borrow_from_array(array, this) }\n    }\n}
    \n
    source

    pub fn zeros<'py, ID>(py: Python<'py>, dims: ID, is_fortran: bool) -> &Self
    where\n ID: IntoDimension<Dim = D>,

    Construct a new NumPy array filled with zeros.

    \n

    If is_fortran is true, then it has Fortran/column-major order,\notherwise it has C/row-major order.

    \n

    For arrays of Python objects, this will fill the array\nwith valid pointers to zero-valued Python integer objects.

    \n

    See also numpy.zeros and PyArray_Zeros.

    \n
    Example
    \n
    use numpy::PyArray2;\nuse pyo3::Python;\n\nPython::with_gil(|py| {\n    let pyarray: &PyArray2<usize> = PyArray2::zeros(py, [2, 2], true);\n\n    assert_eq!(pyarray.readonly().as_slice().unwrap(), [0; 4]);\n});
    \n
    source

    pub unsafe fn as_slice(&self) -> Result<&[T], NotContiguousError>

    Returns an immutable view of the internal data as a slice.

    \n
    Safety
    \n

    Calling this method is undefined behaviour if the underlying array\nis aliased mutably by other instances of PyArray\nor concurrently modified by Python or other native code.

    \n

    Please consider the safe alternative PyReadonlyArray::as_slice.

    \n
    source

    pub unsafe fn as_slice_mut(&self) -> Result<&mut [T], NotContiguousError>

    Returns a mutable view of the internal data as a slice.

    \n
    Safety
    \n

    Calling this method is undefined behaviour if the underlying array\nis aliased immutably or mutably by other instances of PyArray\nor concurrently modified by Python or other native code.

    \n

    Please consider the safe alternative PyReadwriteArray::as_slice_mut.

    \n
    source

    pub fn from_owned_array<'py>(py: Python<'py>, arr: Array<T, D>) -> &'py Self

    Constructs a NumPy from an ndarray::Array

    \n

    This method uses the internal Vec of the ndarray::Array as the base object of the NumPy array.

    \n
    Example
    \n
    use numpy::PyArray;\nuse ndarray::array;\nuse pyo3::Python;\n\nPython::with_gil(|py| {\n    let pyarray = PyArray::from_owned_array(py, array![[1, 2], [3, 4]]);\n\n    assert_eq!(pyarray.readonly().as_array(), array![[1, 2], [3, 4]]);\n});
    \n
    source

    pub unsafe fn get(&self, index: impl NpyIndex<Dim = D>) -> Option<&T>

    Get a reference of the specified element if the given index is valid.

    \n
    Safety
    \n

    Calling this method is undefined behaviour if the underlying array\nis aliased mutably by other instances of PyArray\nor concurrently modified by Python or other native code.

    \n

    Consider using safe alternatives like PyReadonlyArray::get.

    \n
    Example
    \n
    use numpy::PyArray;\nuse pyo3::Python;\n\nPython::with_gil(|py| {\n    let pyarray = PyArray::arange(py, 0, 16, 1).reshape([2, 2, 4]).unwrap();\n\n    assert_eq!(unsafe { *pyarray.get([1, 0, 3]).unwrap() }, 11);\n});
    \n
    source

    pub unsafe fn get_mut(&self, index: impl NpyIndex<Dim = D>) -> Option<&mut T>

    Same as get, but returns Option<&mut T>.

    \n
    Safety
    \n

    Calling this method is undefined behaviour if the underlying array\nis aliased immutably or mutably by other instances of PyArray\nor concurrently modified by Python or other native code.

    \n

    Consider using safe alternatives like PyReadwriteArray::get_mut.

    \n
    Example
    \n
    use numpy::PyArray;\nuse pyo3::Python;\n\nPython::with_gil(|py| {\n    let pyarray = PyArray::arange(py, 0, 16, 1).reshape([2, 2, 4]).unwrap();\n\n    unsafe {\n        *pyarray.get_mut([1, 0, 3]).unwrap() = 42;\n    }\n\n    assert_eq!(unsafe { *pyarray.get([1, 0, 3]).unwrap() }, 42);\n});
    \n
    source

    pub unsafe fn uget<Idx>(&self, index: Idx) -> &T
    where\n Idx: NpyIndex<Dim = D>,

    Get an immutable reference of the specified element,\nwithout checking the given index.

    \n

    See NpyIndex for what types can be used as the index.

    \n
    Safety
    \n

    Passing an invalid index is undefined behavior.\nThe element must also have been initialized and\nall other references to it is must also be shared.

    \n

    See PyReadonlyArray::get for a safe alternative.

    \n
    Example
    \n
    use numpy::PyArray;\nuse pyo3::Python;\n\nPython::with_gil(|py| {\n    let pyarray = PyArray::arange(py, 0, 16, 1).reshape([2, 2, 4]).unwrap();\n\n    assert_eq!(unsafe { *pyarray.uget([1, 0, 3]) }, 11);\n});
    \n
    source

    pub unsafe fn uget_mut<Idx>(&self, index: Idx) -> &mut T
    where\n Idx: NpyIndex<Dim = D>,

    Same as uget, but returns &mut T.

    \n
    Safety
    \n

    Passing an invalid index is undefined behavior.\nThe element must also have been initialized and\nother references to it must not exist.

    \n

    See PyReadwriteArray::get_mut for a safe alternative.

    \n
    source

    pub unsafe fn uget_raw<Idx>(&self, index: Idx) -> *mut T
    where\n Idx: NpyIndex<Dim = D>,

    Same as uget, but returns *mut T.

    \n
    Safety
    \n

    Passing an invalid index is undefined behavior.

    \n
    source

    pub fn get_owned<Idx>(&self, index: Idx) -> Option<T>
    where\n Idx: NpyIndex<Dim = D>,

    Get a copy of the specified element in the array.

    \n

    See NpyIndex for what types can be used as the index.

    \n
    Example
    \n
    use numpy::PyArray;\nuse pyo3::Python;\n\nPython::with_gil(|py| {\n    let pyarray = PyArray::arange(py, 0, 16, 1).reshape([2, 2, 4]).unwrap();\n\n    assert_eq!(pyarray.get_owned([1, 0, 3]), Some(11));\n});
    \n
    source

    pub fn to_dyn(&self) -> &PyArray<T, IxDyn>

    Turn an array with fixed dimensionality into one with dynamic dimensionality.

    \n
    source

    pub fn to_vec(&self) -> Result<Vec<T>, NotContiguousError>

    Returns a copy of the internal data of the array as a Vec.

    \n

    Fails if the internal array is not contiguous. See also as_slice.

    \n
    Example
    \n
    use numpy::PyArray2;\nuse pyo3::Python;\n\nPython::with_gil(|py| {\n    let pyarray= py\n        .eval(\"__import__('numpy').array([[0, 1], [2, 3]], dtype='int64')\", None, None)\n        .unwrap()\n        .downcast::<PyArray2<i64>>()\n        .unwrap();\n\n    assert_eq!(pyarray.to_vec().unwrap(), vec![0, 1, 2, 3]);\n});
    \n
    source

    pub fn from_array<'py, S>(py: Python<'py>, arr: &ArrayBase<S, D>) -> &'py Self
    where\n S: Data<Elem = T>,

    Construct a NumPy array from a ndarray::ArrayBase.

    \n

    This method allocates memory in Python’s heap via the NumPy API,\nand then copies all elements of the array there.

    \n
    Example
    \n
    use numpy::PyArray;\nuse ndarray::array;\nuse pyo3::Python;\n\nPython::with_gil(|py| {\n    let pyarray = PyArray::from_array(py, &array![[1, 2], [3, 4]]);\n\n    assert_eq!(pyarray.readonly().as_array(), array![[1, 2], [3, 4]]);\n});
    \n
    source

    pub fn try_readonly(&self) -> Result<PyReadonlyArray<'_, T, D>, BorrowError>

    Get an immutable borrow of the NumPy array

    \n
    source

    pub fn readonly(&self) -> PyReadonlyArray<'_, T, D>

    Get an immutable borrow of the NumPy array

    \n
    Panics
    \n

    Panics if the allocation backing the array is currently mutably borrowed.

    \n

    For a non-panicking variant, use try_readonly.

    \n
    source

    pub fn try_readwrite(&self) -> Result<PyReadwriteArray<'_, T, D>, BorrowError>

    Get a mutable borrow of the NumPy array

    \n
    source

    pub fn readwrite(&self) -> PyReadwriteArray<'_, T, D>

    Get a mutable borrow of the NumPy array

    \n
    Panics
    \n

    Panics if the allocation backing the array is currently borrowed or\nif the array is flagged as not writeable.

    \n

    For a non-panicking variant, use try_readwrite.

    \n
    source

    pub unsafe fn as_array(&self) -> ArrayView<'_, T, D>

    Returns an ArrayView of the internal array.

    \n

    See also PyReadonlyArray::as_array.

    \n
    Safety
    \n

    Calling this method invalidates all exclusive references to the internal data, e.g. &mut [T] or ArrayViewMut.

    \n
    source

    pub unsafe fn as_array_mut(&self) -> ArrayViewMut<'_, T, D>

    Returns an ArrayViewMut of the internal array.

    \n

    See also PyReadwriteArray::as_array_mut.

    \n
    Safety
    \n

    Calling this method invalidates all other references to the internal data, e.g. ArrayView or ArrayViewMut.

    \n
    source

    pub fn as_raw_array(&self) -> RawArrayView<T, D>

    Returns the internal array as RawArrayView enabling element access via raw pointers

    \n
    source

    pub fn as_raw_array_mut(&self) -> RawArrayViewMut<T, D>

    Returns the internal array as RawArrayViewMut enabling element access via raw pointers

    \n
    source

    pub fn to_owned_array(&self) -> Array<T, D>

    Get a copy of the array as an ndarray::Array.

    \n
    Example
    \n
    use numpy::PyArray;\nuse ndarray::array;\nuse pyo3::Python;\n\nPython::with_gil(|py| {\n    let pyarray = PyArray::arange(py, 0, 4, 1).reshape([2, 2]).unwrap();\n\n    assert_eq!(\n        pyarray.to_owned_array(),\n        array![[0, 1], [2, 3]]\n    )\n});
    \n
    ",0,"numpy::array::PyArray0","numpy::array::PyArray1","numpy::array::PyArray2","numpy::array::PyArray3","numpy::array::PyArray4","numpy::array::PyArray5","numpy::array::PyArray6","numpy::array::PyArrayDyn"],["
    source§

    impl<N, D> PyArray<N, D>
    where\n N: Scalar + Element,\n D: Dimension,

    source

    pub unsafe fn try_as_matrix<R, C, RStride, CStride>(\n &self\n) -> Option<MatrixView<'_, N, R, C, RStride, CStride>>
    where\n R: Dim,\n C: Dim,\n RStride: Dim,\n CStride: Dim,

    Try to convert this array into a nalgebra::MatrixView using the given shape and strides.

    \n
    Safety
    \n

    Calling this method invalidates all exclusive references to the internal data, e.g. ArrayViewMut or MatrixSliceMut.

    \n
    source

    pub unsafe fn try_as_matrix_mut<R, C, RStride, CStride>(\n &self\n) -> Option<MatrixViewMut<'_, N, R, C, RStride, CStride>>
    where\n R: Dim,\n C: Dim,\n RStride: Dim,\n CStride: Dim,

    Try to convert this array into a nalgebra::MatrixViewMut using the given shape and strides.

    \n
    Safety
    \n

    Calling this method invalidates all other references to the internal data, e.g. ArrayView, MatrixSlice, ArrayViewMut or MatrixSliceMut.

    \n
    ",0,"numpy::array::PyArray0","numpy::array::PyArray1","numpy::array::PyArray2","numpy::array::PyArray3","numpy::array::PyArray4","numpy::array::PyArray5","numpy::array::PyArray6","numpy::array::PyArrayDyn"],["
    source§

    impl<D: Dimension> PyArray<PyObject, D>

    source

    pub fn from_owned_object_array<'py, T>(\n py: Python<'py>,\n arr: Array<Py<T>, D>\n) -> &'py Self

    Construct a NumPy array containing objects stored in a ndarray::Array

    \n

    This method uses the internal Vec of the ndarray::Array as the base object of the NumPy array.

    \n
    Example
    \n
    use ndarray::array;\nuse pyo3::{pyclass, Py, Python};\nuse numpy::PyArray;\n\n#[pyclass]\nstruct CustomElement {\n    foo: i32,\n    bar: f64,\n}\n\nPython::with_gil(|py| {\n    let array = array![\n        Py::new(py, CustomElement {\n            foo: 1,\n            bar: 2.0,\n        }).unwrap(),\n        Py::new(py, CustomElement {\n            foo: 3,\n            bar: 4.0,\n        }).unwrap(),\n    ];\n\n    let pyarray = PyArray::from_owned_object_array(py, array);\n\n    assert!(pyarray.readonly().as_array().get(0).unwrap().as_ref(py).is_instance_of::<CustomElement>());\n});
    \n
    ",0,"numpy::array::PyArray0","numpy::array::PyArray1","numpy::array::PyArray2","numpy::array::PyArray3","numpy::array::PyArray4","numpy::array::PyArray5","numpy::array::PyArray6","numpy::array::PyArrayDyn"],["
    source§

    impl<T: Copy + Element> PyArray<T, Ix0>

    source

    pub fn item(&self) -> T

    Get the single element of a zero-dimensional array.

    \n

    See inner for an example.

    \n
    ",0,"numpy::array::PyArray0"],["
    source§

    impl<T: Element> PyArray<T, Ix1>

    source

    pub fn from_slice<'py>(py: Python<'py>, slice: &[T]) -> &'py Self

    Construct a one-dimensional array from a slice.

    \n
    Example
    \n
    use numpy::PyArray;\nuse pyo3::Python;\n\nPython::with_gil(|py| {\n    let slice = &[1, 2, 3, 4, 5];\n    let pyarray = PyArray::from_slice(py, slice);\n    assert_eq!(pyarray.readonly().as_slice().unwrap(), &[1, 2, 3, 4, 5]);\n});
    \n
    source

    pub fn from_vec<'py>(py: Python<'py>, vec: Vec<T>) -> &'py Self

    Construct a one-dimensional array from a Vec<T>.

    \n
    Example
    \n
    use numpy::PyArray;\nuse pyo3::Python;\n\nPython::with_gil(|py| {\n    let vec = vec![1, 2, 3, 4, 5];\n    let pyarray = PyArray::from_vec(py, vec);\n    assert_eq!(pyarray.readonly().as_slice().unwrap(), &[1, 2, 3, 4, 5]);\n});
    \n
    source

    pub fn from_iter<'py, I>(py: Python<'py>, iter: I) -> &'py Self
    where\n I: IntoIterator<Item = T>,

    Construct a one-dimensional array from an Iterator.

    \n

    If no reliable size_hint is available,\nthis method can allocate memory multiple times, which can hurt performance.

    \n
    Example
    \n
    use numpy::PyArray;\nuse pyo3::Python;\n\nPython::with_gil(|py| {\n    let pyarray = PyArray::from_iter(py, \"abcde\".chars().map(u32::from));\n    assert_eq!(pyarray.readonly().as_slice().unwrap(), &[97, 98, 99, 100, 101]);\n});
    \n
    ",0,"numpy::array::PyArray1"],["
    source§

    impl<T: Element> PyArray<T, Ix2>

    source

    pub fn from_vec2<'py>(\n py: Python<'py>,\n v: &[Vec<T>]\n) -> Result<&'py Self, FromVecError>

    Construct a two-dimension array from a Vec<Vec<T>>.

    \n

    This function checks all dimensions of the inner vectors and returns\nan error if they are not all equal.

    \n
    Example
    \n
    use numpy::PyArray;\nuse pyo3::Python;\nuse ndarray::array;\n\nPython::with_gil(|py| {\n    let vec2 = vec![vec![11, 12], vec![21, 22]];\n    let pyarray = PyArray::from_vec2(py, &vec2).unwrap();\n    assert_eq!(pyarray.readonly().as_array(), array![[11, 12], [21, 22]]);\n\n    let ragged_vec2 = vec![vec![11, 12], vec![21]];\n    assert!(PyArray::from_vec2(py, &ragged_vec2).is_err());\n});
    \n
    ",0,"numpy::array::PyArray2"],["
    source§

    impl<T: Element> PyArray<T, Ix3>

    source

    pub fn from_vec3<'py>(\n py: Python<'py>,\n v: &[Vec<Vec<T>>]\n) -> Result<&'py Self, FromVecError>

    Construct a three-dimensional array from a Vec<Vec<Vec<T>>>.

    \n

    This function checks all dimensions of the inner vectors and returns\nan error if they are not all equal.

    \n
    Example
    \n
    use numpy::PyArray;\nuse pyo3::Python;\nuse ndarray::array;\n\nPython::with_gil(|py| {\n    let vec3 = vec![\n        vec![vec![111, 112], vec![121, 122]],\n        vec![vec![211, 212], vec![221, 222]],\n    ];\n    let pyarray = PyArray::from_vec3(py, &vec3).unwrap();\n    assert_eq!(\n        pyarray.readonly().as_array(),\n        array![[[111, 112], [121, 122]], [[211, 212], [221, 222]]]\n    );\n\n    let ragged_vec3 = vec![\n        vec![vec![111, 112], vec![121, 122]],\n        vec![vec![211], vec![221, 222]],\n    ];\n    assert!(PyArray::from_vec3(py, &ragged_vec3).is_err());\n});
    \n
    ",0,"numpy::array::PyArray3"],["
    source§

    impl<T: Element, D> PyArray<T, D>

    source

    pub fn copy_to<U: Element>(&self, other: &PyArray<U, D>) -> PyResult<()>

    Copies self into other, performing a data type conversion if necessary.

    \n

    See also PyArray_CopyInto.

    \n
    Example
    \n
    use numpy::PyArray;\nuse pyo3::Python;\n\nPython::with_gil(|py| {\n    let pyarray_f = PyArray::arange(py, 2.0, 5.0, 1.0);\n    let pyarray_i = unsafe { PyArray::<i64, _>::new(py, [3], false) };\n\n    assert!(pyarray_f.copy_to(pyarray_i).is_ok());\n\n    assert_eq!(pyarray_i.readonly().as_slice().unwrap(), &[2, 3, 4]);\n});
    \n
    source

    pub fn cast<'py, U: Element>(\n &'py self,\n is_fortran: bool\n) -> PyResult<&'py PyArray<U, D>>

    Cast the PyArray<T> to PyArray<U>, by allocating a new array.

    \n

    See also PyArray_CastToType.

    \n
    Example
    \n
    use numpy::PyArray;\nuse pyo3::Python;\n\nPython::with_gil(|py| {\n    let pyarray_f = PyArray::arange(py, 2.0, 5.0, 1.0);\n\n    let pyarray_i = pyarray_f.cast::<i32>(false).unwrap();\n\n    assert_eq!(pyarray_i.readonly().as_slice().unwrap(), &[2, 3, 4]);\n});
    \n
    source

    pub fn reshape_with_order<'py, ID: IntoDimension>(\n &'py self,\n dims: ID,\n order: NPY_ORDER\n) -> PyResult<&'py PyArray<T, ID::Dim>>

    Construct a new array which has same values as self,\nbut has different dimensions specified by dims\nand a possibly different memory order specified by order.

    \n

    See also numpy.reshape and PyArray_Newshape.

    \n
    Example
    \n
    use numpy::{npyffi::NPY_ORDER, PyArray};\nuse pyo3::Python;\nuse ndarray::array;\n\nPython::with_gil(|py| {\n    let array =\n        PyArray::from_iter(py, 0..9).reshape_with_order([3, 3], NPY_ORDER::NPY_FORTRANORDER).unwrap();\n\n    assert_eq!(array.readonly().as_array(), array![[0, 3, 6], [1, 4, 7], [2, 5, 8]]);\n    assert!(array.is_fortran_contiguous());\n\n    assert!(array.reshape([5]).is_err());\n});
    \n
    source

    pub fn reshape<'py, ID: IntoDimension>(\n &'py self,\n dims: ID\n) -> PyResult<&'py PyArray<T, ID::Dim>>

    Special case of reshape_with_order which keeps the memory order the same.

    \n
    source

    pub unsafe fn resize<ID: IntoDimension>(&self, dims: ID) -> PyResult<()>

    Extends or truncates the dimensions of an array.

    \n

    This method works only on contiguous arrays.\nMissing elements will be initialized as if calling zeros.

    \n

    See also ndarray.resize and PyArray_Resize.

    \n
    Safety
    \n

    There should be no outstanding references (shared or exclusive) into the array\nas this method might re-allocate it and thereby invalidate all pointers into it.

    \n
    Example
    \n
    use numpy::PyArray;\nuse pyo3::Python;\n\nPython::with_gil(|py| {\n    let pyarray = PyArray::<f64, _>::zeros(py, (10, 10), false);\n    assert_eq!(pyarray.shape(), [10, 10]);\n\n    unsafe {\n        pyarray.resize((100, 100)).unwrap();\n    }\n    assert_eq!(pyarray.shape(), [100, 100]);\n});
    \n
    ",0,"numpy::array::PyArray0","numpy::array::PyArray1","numpy::array::PyArray2","numpy::array::PyArray3","numpy::array::PyArray4","numpy::array::PyArray5","numpy::array::PyArray6","numpy::array::PyArrayDyn"],["
    source§

    impl<T: Element + AsPrimitive<f64>> PyArray<T, Ix1>

    source

    pub fn arange<'py>(py: Python<'py>, start: T, stop: T, step: T) -> &Self

    Return evenly spaced values within a given interval.

    \n

    See numpy.arange for the Python API and PyArray_Arange for the C API.

    \n
    Example
    \n
    use numpy::PyArray;\nuse pyo3::Python;\n\nPython::with_gil(|py| {\n    let pyarray = PyArray::arange(py, 2.0, 4.0, 0.5);\n    assert_eq!(pyarray.readonly().as_slice().unwrap(), &[2.0, 2.5, 3.0, 3.5]);\n\n    let pyarray = PyArray::arange(py, -2, 4, 3);\n    assert_eq!(pyarray.readonly().as_slice().unwrap(), &[-2, 1]);\n});
    \n
    ",0,"numpy::array::PyArray1"],["
    source§

    impl<T, D> Debug for PyArray<T, D>

    source§

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

    Formats the value using the given formatter. Read more
    ","Debug","numpy::array::PyArray0","numpy::array::PyArray1","numpy::array::PyArray2","numpy::array::PyArray3","numpy::array::PyArray4","numpy::array::PyArray5","numpy::array::PyArray6","numpy::array::PyArrayDyn"],["
    source§

    impl<T, D> DerefToPyAny for PyArray<T, D>

    ","DerefToPyAny","numpy::array::PyArray0","numpy::array::PyArray1","numpy::array::PyArray2","numpy::array::PyArray3","numpy::array::PyArray4","numpy::array::PyArray5","numpy::array::PyArray6","numpy::array::PyArrayDyn"],["
    source§

    impl<T, D> PyNativeType for PyArray<T, D>

    §

    type AsRefSource = PyArray<T, D>

    The form of this which is stored inside a Py<T> smart pointer.
    §

    fn as_borrowed(&self) -> Borrowed<'_, '_, Self::AsRefSource>

    Cast &self to a Borrowed smart pointer. Read more
    §

    fn py(&self) -> Python<'_>

    Returns a GIL marker constrained to the lifetime of this type.
    §

    unsafe fn unchecked_downcast(obj: &PyAny) -> &Self

    Cast &PyAny to &Self without no type checking. Read more
    ","PyNativeType","numpy::array::PyArray0","numpy::array::PyArray1","numpy::array::PyArray2","numpy::array::PyArray3","numpy::array::PyArray4","numpy::array::PyArray5","numpy::array::PyArray6","numpy::array::PyArrayDyn"],["
    source§

    impl<T: Element, D: Dimension> PyTypeInfo for PyArray<T, D>

    source§

    const NAME: &'static str = "PyArray<T, D>"

    Class name.
    source§

    const MODULE: Option<&'static str> = _

    Module name, if any.
    source§

    fn type_object_raw<'py>(py: Python<'py>) -> *mut PyTypeObject

    Returns the PyTypeObject instance for this type.
    source§

    fn is_type_of_bound(ob: &Bound<'_, PyAny>) -> bool

    Checks if object is an instance of this type or a subclass of this type.
    §

    fn type_object(py: Python<'_>) -> &PyType

    Returns the safe abstraction over the type object.
    §

    fn type_object_bound(py: Python<'_>) -> Bound<'_, PyType>

    Returns the safe abstraction over the type object.
    §

    fn is_type_of(object: &PyAny) -> bool

    Checks if object is an instance of this type or a subclass of this type.
    §

    fn is_exact_type_of(object: &PyAny) -> bool

    Checks if object is an instance of this type.
    §

    fn is_exact_type_of_bound(object: &Bound<'_, PyAny>) -> bool

    Checks if object is an instance of this type.
    ","PyTypeInfo","numpy::array::PyArray0","numpy::array::PyArray1","numpy::array::PyArray2","numpy::array::PyArray3","numpy::array::PyArray4","numpy::array::PyArray5","numpy::array::PyArray6","numpy::array::PyArrayDyn"],["
    source§

    impl<T, D> Display for PyArray<T, D>

    source§

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

    Formats the value using the given formatter. Read more
    ","Display","numpy::array::PyArray0","numpy::array::PyArray1","numpy::array::PyArray2","numpy::array::PyArray3","numpy::array::PyArray4","numpy::array::PyArray5","numpy::array::PyArray6","numpy::array::PyArrayDyn"],["
    source§

    impl<T, D> ToPyObject for PyArray<T, D>

    source§

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

    Converts self into a Python object.
    ","ToPyObject","numpy::array::PyArray0","numpy::array::PyArray1","numpy::array::PyArray2","numpy::array::PyArray3","numpy::array::PyArray4","numpy::array::PyArray5","numpy::array::PyArray6","numpy::array::PyArrayDyn"],["
    source§

    impl<T, D> IntoPy<Py<PyAny>> for PyArray<T, D>

    source§

    fn into_py<'py>(self, py: Python<'py>) -> PyObject

    Performs the conversion.
    ","IntoPy>","numpy::array::PyArray0","numpy::array::PyArray1","numpy::array::PyArray2","numpy::array::PyArray3","numpy::array::PyArray4","numpy::array::PyArray5","numpy::array::PyArray6","numpy::array::PyArrayDyn"],["
    source§

    impl<T, D> AsPyPointer for PyArray<T, D>

    source§

    fn as_ptr(&self) -> *mut PyObject

    Returns the underlying FFI pointer as a borrowed pointer.
    ","AsPyPointer","numpy::array::PyArray0","numpy::array::PyArray1","numpy::array::PyArray2","numpy::array::PyArray3","numpy::array::PyArray4","numpy::array::PyArray5","numpy::array::PyArray6","numpy::array::PyArrayDyn"],["
    source§

    impl<T, D> Deref for PyArray<T, D>

    §

    type Target = PyUntypedArray

    The resulting type after dereferencing.
    source§

    fn deref(&self) -> &Self::Target

    Dereferences the value.
    ","Deref","numpy::array::PyArray0","numpy::array::PyArray1","numpy::array::PyArray2","numpy::array::PyArray3","numpy::array::PyArray4","numpy::array::PyArray5","numpy::array::PyArray6","numpy::array::PyArrayDyn"],["
    source§

    impl<T, D> AsRef<PyAny> for PyArray<T, D>

    source§

    fn as_ref(&self) -> &PyAny

    Converts this type into a shared reference of the (usually inferred) input type.
    ","AsRef","numpy::array::PyArray0","numpy::array::PyArray1","numpy::array::PyArray2","numpy::array::PyArray3","numpy::array::PyArray4","numpy::array::PyArray5","numpy::array::PyArray6","numpy::array::PyArrayDyn"]] };if (window.register_type_impls) {window.register_type_impls(type_impls);} else {window.pending_type_impls = type_impls;}})() \ No newline at end of file diff --git a/type.impl/numpy/borrow/struct.PyReadonlyArray.js b/type.impl/numpy/borrow/struct.PyReadonlyArray.js index 091fe00de..e66514702 100644 --- a/type.impl/numpy/borrow/struct.PyReadonlyArray.js +++ b/type.impl/numpy/borrow/struct.PyReadonlyArray.js @@ -1,3 +1,3 @@ (function() {var type_impls = { -"numpy":[["
    source§

    impl<'py, T, D> PyReadonlyArray<'py, T, D>
    where\n T: Element,\n D: Dimension,

    source

    pub fn as_array(&self) -> ArrayView<'_, T, D>

    Provides an immutable array view of the interior of the NumPy array.

    \n
    source

    pub fn as_slice(&self) -> Result<&[T], NotContiguousError>

    Provide an immutable slice view of the interior of the NumPy array if it is contiguous.

    \n
    source

    pub fn get<I>(&self, index: I) -> Option<&T>
    where\n I: NpyIndex<Dim = D>,

    Provide an immutable reference to an element of the NumPy array if the index is within bounds.

    \n
    ",0,"numpy::borrow::PyReadonlyArray0","numpy::borrow::PyReadonlyArray1","numpy::borrow::PyReadonlyArray2","numpy::borrow::PyReadonlyArray3","numpy::borrow::PyReadonlyArray4","numpy::borrow::PyReadonlyArray5","numpy::borrow::PyReadonlyArray6","numpy::borrow::PyReadonlyArrayDyn"],["
    source§

    impl<'py, N, D> PyReadonlyArray<'py, N, D>
    where\n N: Scalar + Element,\n D: Dimension,

    source

    pub fn try_as_matrix<R, C, RStride, CStride>(\n &self\n) -> Option<MatrixView<'_, N, R, C, RStride, CStride>>
    where\n R: Dim,\n C: Dim,\n RStride: Dim,\n CStride: Dim,

    Try to convert this array into a nalgebra::MatrixView using the given shape and strides.

    \n
    ",0,"numpy::borrow::PyReadonlyArray0","numpy::borrow::PyReadonlyArray1","numpy::borrow::PyReadonlyArray2","numpy::borrow::PyReadonlyArray3","numpy::borrow::PyReadonlyArray4","numpy::borrow::PyReadonlyArray5","numpy::borrow::PyReadonlyArray6","numpy::borrow::PyReadonlyArrayDyn"],["
    source§

    impl<'py, N> PyReadonlyArray<'py, N, Ix1>
    where\n N: Scalar + Element,

    source

    pub fn as_matrix(&self) -> DMatrixView<'_, N, Dyn, Dyn>

    Convert this one-dimensional array into a nalgebra::DMatrixView using dynamic strides.

    \n
    Panics
    \n

    Panics if the array has negative strides.

    \n
    ",0,"numpy::borrow::PyReadonlyArray1"],["
    source§

    impl<'py, N> PyReadonlyArray<'py, N, Ix2>
    where\n N: Scalar + Element,

    source

    pub fn as_matrix(&self) -> DMatrixView<'_, N, Dyn, Dyn>

    Convert this two-dimensional array into a nalgebra::DMatrixView using dynamic strides.

    \n
    Panics
    \n

    Panics if the array has negative strides.

    \n
    ",0,"numpy::borrow::PyReadonlyArray2"],["
    source§

    impl<'py, T, D> Deref for PyReadonlyArray<'py, T, D>
    where\n T: Element,\n D: Dimension,

    §

    type Target = PyArray<T, D>

    The resulting type after dereferencing.
    source§

    fn deref(&self) -> &Self::Target

    Dereferences the value.
    ","Deref","numpy::borrow::PyReadonlyArray0","numpy::borrow::PyReadonlyArray1","numpy::borrow::PyReadonlyArray2","numpy::borrow::PyReadonlyArray3","numpy::borrow::PyReadonlyArray4","numpy::borrow::PyReadonlyArray5","numpy::borrow::PyReadonlyArray6","numpy::borrow::PyReadonlyArrayDyn"],["
    source§

    impl<'a, T, D> Drop for PyReadonlyArray<'a, T, D>
    where\n T: Element,\n D: Dimension,

    source§

    fn drop(&mut self)

    Executes the destructor for this type. Read more
    ","Drop","numpy::borrow::PyReadonlyArray0","numpy::borrow::PyReadonlyArray1","numpy::borrow::PyReadonlyArray2","numpy::borrow::PyReadonlyArray3","numpy::borrow::PyReadonlyArray4","numpy::borrow::PyReadonlyArray5","numpy::borrow::PyReadonlyArray6","numpy::borrow::PyReadonlyArrayDyn"],["
    source§

    impl<'py, T, D> Debug for PyReadonlyArray<'py, T, D>
    where\n T: Element,\n D: Dimension,

    source§

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

    Formats the value using the given formatter. Read more
    ","Debug","numpy::borrow::PyReadonlyArray0","numpy::borrow::PyReadonlyArray1","numpy::borrow::PyReadonlyArray2","numpy::borrow::PyReadonlyArray3","numpy::borrow::PyReadonlyArray4","numpy::borrow::PyReadonlyArray5","numpy::borrow::PyReadonlyArray6","numpy::borrow::PyReadonlyArrayDyn"],["
    source§

    impl<'py, T: Element, D: Dimension> FromPyObject<'py> for PyReadonlyArray<'py, T, D>

    source§

    fn extract(obj: &'py PyAny) -> PyResult<Self>

    Extracts Self from the source GIL Ref obj. Read more
    §

    fn extract_bound(ob: &Bound<'py, PyAny>) -> Result<Self, PyErr>

    Extracts Self from the bound smart pointer obj. Read more
    ","FromPyObject<'py>","numpy::borrow::PyReadonlyArray0","numpy::borrow::PyReadonlyArray1","numpy::borrow::PyReadonlyArray2","numpy::borrow::PyReadonlyArray3","numpy::borrow::PyReadonlyArray4","numpy::borrow::PyReadonlyArray5","numpy::borrow::PyReadonlyArray6","numpy::borrow::PyReadonlyArrayDyn"],["
    source§

    impl<'a, T, D> Clone for PyReadonlyArray<'a, T, D>
    where\n T: Element,\n D: Dimension,

    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
    ","Clone","numpy::borrow::PyReadonlyArray0","numpy::borrow::PyReadonlyArray1","numpy::borrow::PyReadonlyArray2","numpy::borrow::PyReadonlyArray3","numpy::borrow::PyReadonlyArray4","numpy::borrow::PyReadonlyArray5","numpy::borrow::PyReadonlyArray6","numpy::borrow::PyReadonlyArrayDyn"]] +"numpy":[["
    source§

    impl<'py, T, D> PyReadonlyArray<'py, T, D>
    where\n T: Element,\n D: Dimension,

    source

    pub fn as_array(&self) -> ArrayView<'_, T, D>

    Provides an immutable array view of the interior of the NumPy array.

    \n
    source

    pub fn as_slice(&self) -> Result<&[T], NotContiguousError>

    Provide an immutable slice view of the interior of the NumPy array if it is contiguous.

    \n
    source

    pub fn get<I>(&self, index: I) -> Option<&T>
    where\n I: NpyIndex<Dim = D>,

    Provide an immutable reference to an element of the NumPy array if the index is within bounds.

    \n
    ",0,"numpy::borrow::PyReadonlyArray0","numpy::borrow::PyReadonlyArray1","numpy::borrow::PyReadonlyArray2","numpy::borrow::PyReadonlyArray3","numpy::borrow::PyReadonlyArray4","numpy::borrow::PyReadonlyArray5","numpy::borrow::PyReadonlyArray6","numpy::borrow::PyReadonlyArrayDyn"],["
    source§

    impl<'py, N, D> PyReadonlyArray<'py, N, D>
    where\n N: Scalar + Element,\n D: Dimension,

    source

    pub fn try_as_matrix<R, C, RStride, CStride>(\n &self\n) -> Option<MatrixView<'_, N, R, C, RStride, CStride>>
    where\n R: Dim,\n C: Dim,\n RStride: Dim,\n CStride: Dim,

    Try to convert this array into a nalgebra::MatrixView using the given shape and strides.

    \n
    ",0,"numpy::borrow::PyReadonlyArray0","numpy::borrow::PyReadonlyArray1","numpy::borrow::PyReadonlyArray2","numpy::borrow::PyReadonlyArray3","numpy::borrow::PyReadonlyArray4","numpy::borrow::PyReadonlyArray5","numpy::borrow::PyReadonlyArray6","numpy::borrow::PyReadonlyArrayDyn"],["
    source§

    impl<'py, N> PyReadonlyArray<'py, N, Ix1>
    where\n N: Scalar + Element,

    source

    pub fn as_matrix(&self) -> DMatrixView<'_, N, Dyn, Dyn>

    Convert this one-dimensional array into a nalgebra::DMatrixView using dynamic strides.

    \n
    Panics
    \n

    Panics if the array has negative strides.

    \n
    ",0,"numpy::borrow::PyReadonlyArray1"],["
    source§

    impl<'py, N> PyReadonlyArray<'py, N, Ix2>
    where\n N: Scalar + Element,

    source

    pub fn as_matrix(&self) -> DMatrixView<'_, N, Dyn, Dyn>

    Convert this two-dimensional array into a nalgebra::DMatrixView using dynamic strides.

    \n
    Panics
    \n

    Panics if the array has negative strides.

    \n
    ",0,"numpy::borrow::PyReadonlyArray2"],["
    source§

    impl<'py, T: Element, D: Dimension> FromPyObject<'py> for PyReadonlyArray<'py, T, D>

    source§

    fn extract(obj: &'py PyAny) -> PyResult<Self>

    Extracts Self from the source GIL Ref obj. Read more
    §

    fn extract_bound(ob: &Bound<'py, PyAny>) -> Result<Self, PyErr>

    Extracts Self from the bound smart pointer obj. Read more
    ","FromPyObject<'py>","numpy::borrow::PyReadonlyArray0","numpy::borrow::PyReadonlyArray1","numpy::borrow::PyReadonlyArray2","numpy::borrow::PyReadonlyArray3","numpy::borrow::PyReadonlyArray4","numpy::borrow::PyReadonlyArray5","numpy::borrow::PyReadonlyArray6","numpy::borrow::PyReadonlyArrayDyn"],["
    source§

    impl<'a, T, D> Drop for PyReadonlyArray<'a, T, D>
    where\n T: Element,\n D: Dimension,

    source§

    fn drop(&mut self)

    Executes the destructor for this type. Read more
    ","Drop","numpy::borrow::PyReadonlyArray0","numpy::borrow::PyReadonlyArray1","numpy::borrow::PyReadonlyArray2","numpy::borrow::PyReadonlyArray3","numpy::borrow::PyReadonlyArray4","numpy::borrow::PyReadonlyArray5","numpy::borrow::PyReadonlyArray6","numpy::borrow::PyReadonlyArrayDyn"],["
    source§

    impl<'a, T, D> Clone for PyReadonlyArray<'a, T, D>
    where\n T: Element,\n D: Dimension,

    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
    ","Clone","numpy::borrow::PyReadonlyArray0","numpy::borrow::PyReadonlyArray1","numpy::borrow::PyReadonlyArray2","numpy::borrow::PyReadonlyArray3","numpy::borrow::PyReadonlyArray4","numpy::borrow::PyReadonlyArray5","numpy::borrow::PyReadonlyArray6","numpy::borrow::PyReadonlyArrayDyn"],["
    source§

    impl<'py, T, D> Deref for PyReadonlyArray<'py, T, D>
    where\n T: Element,\n D: Dimension,

    §

    type Target = PyArray<T, D>

    The resulting type after dereferencing.
    source§

    fn deref(&self) -> &Self::Target

    Dereferences the value.
    ","Deref","numpy::borrow::PyReadonlyArray0","numpy::borrow::PyReadonlyArray1","numpy::borrow::PyReadonlyArray2","numpy::borrow::PyReadonlyArray3","numpy::borrow::PyReadonlyArray4","numpy::borrow::PyReadonlyArray5","numpy::borrow::PyReadonlyArray6","numpy::borrow::PyReadonlyArrayDyn"],["
    source§

    impl<'py, T, D> Debug for PyReadonlyArray<'py, T, D>
    where\n T: Element,\n D: Dimension,

    source§

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

    Formats the value using the given formatter. Read more
    ","Debug","numpy::borrow::PyReadonlyArray0","numpy::borrow::PyReadonlyArray1","numpy::borrow::PyReadonlyArray2","numpy::borrow::PyReadonlyArray3","numpy::borrow::PyReadonlyArray4","numpy::borrow::PyReadonlyArray5","numpy::borrow::PyReadonlyArray6","numpy::borrow::PyReadonlyArrayDyn"]] };if (window.register_type_impls) {window.register_type_impls(type_impls);} else {window.pending_type_impls = type_impls;}})() \ No newline at end of file diff --git a/type.impl/numpy/borrow/struct.PyReadwriteArray.js b/type.impl/numpy/borrow/struct.PyReadwriteArray.js index b7b831819..e9f2a86db 100644 --- a/type.impl/numpy/borrow/struct.PyReadwriteArray.js +++ b/type.impl/numpy/borrow/struct.PyReadwriteArray.js @@ -1,3 +1,3 @@ (function() {var type_impls = { -"numpy":[["
    source§

    impl<'py, T, D> PyReadwriteArray<'py, T, D>
    where\n T: Element,\n D: Dimension,

    source

    pub fn as_array_mut(&mut self) -> ArrayViewMut<'_, T, D>

    Provides a mutable array view of the interior of the NumPy array.

    \n
    source

    pub fn as_slice_mut(&mut self) -> Result<&mut [T], NotContiguousError>

    Provide a mutable slice view of the interior of the NumPy array if it is contiguous.

    \n
    source

    pub fn get_mut<I>(&mut self, index: I) -> Option<&mut T>
    where\n I: NpyIndex<Dim = D>,

    Provide a mutable reference to an element of the NumPy array if the index is within bounds.

    \n
    ",0,"numpy::borrow::PyReadwriteArray0","numpy::borrow::PyReadwriteArray1","numpy::borrow::PyReadwriteArray2","numpy::borrow::PyReadwriteArray3","numpy::borrow::PyReadwriteArray4","numpy::borrow::PyReadwriteArray5","numpy::borrow::PyReadwriteArray6","numpy::borrow::PyReadwriteArrayDyn"],["
    source§

    impl<'py, N, D> PyReadwriteArray<'py, N, D>
    where\n N: Scalar + Element,\n D: Dimension,

    source

    pub fn try_as_matrix_mut<R, C, RStride, CStride>(\n &self\n) -> Option<MatrixViewMut<'_, N, R, C, RStride, CStride>>
    where\n R: Dim,\n C: Dim,\n RStride: Dim,\n CStride: Dim,

    Try to convert this array into a nalgebra::MatrixViewMut using the given shape and strides.

    \n
    ",0,"numpy::borrow::PyReadwriteArray0","numpy::borrow::PyReadwriteArray1","numpy::borrow::PyReadwriteArray2","numpy::borrow::PyReadwriteArray3","numpy::borrow::PyReadwriteArray4","numpy::borrow::PyReadwriteArray5","numpy::borrow::PyReadwriteArray6","numpy::borrow::PyReadwriteArrayDyn"],["
    source§

    impl<'py, N> PyReadwriteArray<'py, N, Ix1>
    where\n N: Scalar + Element,

    source

    pub fn as_matrix_mut(&self) -> DMatrixViewMut<'_, N, Dyn, Dyn>

    Convert this one-dimensional array into a nalgebra::DMatrixViewMut using dynamic strides.

    \n
    Panics
    \n

    Panics if the array has negative strides.

    \n
    ",0,"numpy::borrow::PyReadwriteArray1"],["
    source§

    impl<'py, N> PyReadwriteArray<'py, N, Ix2>
    where\n N: Scalar + Element,

    source

    pub fn as_matrix_mut(&self) -> DMatrixViewMut<'_, N, Dyn, Dyn>

    Convert this two-dimensional array into a nalgebra::DMatrixViewMut using dynamic strides.

    \n
    Panics
    \n

    Panics if the array has negative strides.

    \n
    ",0,"numpy::borrow::PyReadwriteArray2"],["
    source§

    impl<'py, T> PyReadwriteArray<'py, T, Ix1>
    where\n T: Element,

    source

    pub fn resize<ID: IntoDimension>(self, dims: ID) -> PyResult<Self>

    Extends or truncates the dimensions of an array.

    \n

    Safe wrapper for PyArray::resize.

    \n
    Example
    \n
    use numpy::PyArray;\nuse pyo3::Python;\n\nPython::with_gil(|py| {\n    let pyarray = PyArray::arange(py, 0, 10, 1);\n    assert_eq!(pyarray.len(), 10);\n\n    let pyarray = pyarray.readwrite();\n    let pyarray = pyarray.resize(100).unwrap();\n    assert_eq!(pyarray.len(), 100);\n});
    \n
    ",0,"numpy::borrow::PyReadwriteArray1"],["
    source§

    impl<'py, T, D> Deref for PyReadwriteArray<'py, T, D>
    where\n T: Element,\n D: Dimension,

    §

    type Target = PyReadonlyArray<'py, T, D>

    The resulting type after dereferencing.
    source§

    fn deref(&self) -> &Self::Target

    Dereferences the value.
    ","Deref","numpy::borrow::PyReadwriteArray0","numpy::borrow::PyReadwriteArray1","numpy::borrow::PyReadwriteArray2","numpy::borrow::PyReadwriteArray3","numpy::borrow::PyReadwriteArray4","numpy::borrow::PyReadwriteArray5","numpy::borrow::PyReadwriteArray6","numpy::borrow::PyReadwriteArrayDyn"],["
    source§

    impl<'py, T: Element, D: Dimension> FromPyObject<'py> for PyReadwriteArray<'py, T, D>

    source§

    fn extract(obj: &'py PyAny) -> PyResult<Self>

    Extracts Self from the source GIL Ref obj. Read more
    §

    fn extract_bound(ob: &Bound<'py, PyAny>) -> Result<Self, PyErr>

    Extracts Self from the bound smart pointer obj. Read more
    ","FromPyObject<'py>","numpy::borrow::PyReadwriteArray0","numpy::borrow::PyReadwriteArray1","numpy::borrow::PyReadwriteArray2","numpy::borrow::PyReadwriteArray3","numpy::borrow::PyReadwriteArray4","numpy::borrow::PyReadwriteArray5","numpy::borrow::PyReadwriteArray6","numpy::borrow::PyReadwriteArrayDyn"],["
    source§

    impl<'py, T, D> Debug for PyReadwriteArray<'py, T, D>
    where\n T: Element,\n D: Dimension,

    source§

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

    Formats the value using the given formatter. Read more
    ","Debug","numpy::borrow::PyReadwriteArray0","numpy::borrow::PyReadwriteArray1","numpy::borrow::PyReadwriteArray2","numpy::borrow::PyReadwriteArray3","numpy::borrow::PyReadwriteArray4","numpy::borrow::PyReadwriteArray5","numpy::borrow::PyReadwriteArray6","numpy::borrow::PyReadwriteArrayDyn"],["
    source§

    impl<'a, T, D> Drop for PyReadwriteArray<'a, T, D>
    where\n T: Element,\n D: Dimension,

    source§

    fn drop(&mut self)

    Executes the destructor for this type. Read more
    ","Drop","numpy::borrow::PyReadwriteArray0","numpy::borrow::PyReadwriteArray1","numpy::borrow::PyReadwriteArray2","numpy::borrow::PyReadwriteArray3","numpy::borrow::PyReadwriteArray4","numpy::borrow::PyReadwriteArray5","numpy::borrow::PyReadwriteArray6","numpy::borrow::PyReadwriteArrayDyn"]] +"numpy":[["
    source§

    impl<'py, T, D> PyReadwriteArray<'py, T, D>
    where\n T: Element,\n D: Dimension,

    source

    pub fn as_array_mut(&mut self) -> ArrayViewMut<'_, T, D>

    Provides a mutable array view of the interior of the NumPy array.

    \n
    source

    pub fn as_slice_mut(&mut self) -> Result<&mut [T], NotContiguousError>

    Provide a mutable slice view of the interior of the NumPy array if it is contiguous.

    \n
    source

    pub fn get_mut<I>(&mut self, index: I) -> Option<&mut T>
    where\n I: NpyIndex<Dim = D>,

    Provide a mutable reference to an element of the NumPy array if the index is within bounds.

    \n
    ",0,"numpy::borrow::PyReadwriteArray0","numpy::borrow::PyReadwriteArray1","numpy::borrow::PyReadwriteArray2","numpy::borrow::PyReadwriteArray3","numpy::borrow::PyReadwriteArray4","numpy::borrow::PyReadwriteArray5","numpy::borrow::PyReadwriteArray6","numpy::borrow::PyReadwriteArrayDyn"],["
    source§

    impl<'py, N, D> PyReadwriteArray<'py, N, D>
    where\n N: Scalar + Element,\n D: Dimension,

    source

    pub fn try_as_matrix_mut<R, C, RStride, CStride>(\n &self\n) -> Option<MatrixViewMut<'_, N, R, C, RStride, CStride>>
    where\n R: Dim,\n C: Dim,\n RStride: Dim,\n CStride: Dim,

    Try to convert this array into a nalgebra::MatrixViewMut using the given shape and strides.

    \n
    ",0,"numpy::borrow::PyReadwriteArray0","numpy::borrow::PyReadwriteArray1","numpy::borrow::PyReadwriteArray2","numpy::borrow::PyReadwriteArray3","numpy::borrow::PyReadwriteArray4","numpy::borrow::PyReadwriteArray5","numpy::borrow::PyReadwriteArray6","numpy::borrow::PyReadwriteArrayDyn"],["
    source§

    impl<'py, N> PyReadwriteArray<'py, N, Ix1>
    where\n N: Scalar + Element,

    source

    pub fn as_matrix_mut(&self) -> DMatrixViewMut<'_, N, Dyn, Dyn>

    Convert this one-dimensional array into a nalgebra::DMatrixViewMut using dynamic strides.

    \n
    Panics
    \n

    Panics if the array has negative strides.

    \n
    ",0,"numpy::borrow::PyReadwriteArray1"],["
    source§

    impl<'py, N> PyReadwriteArray<'py, N, Ix2>
    where\n N: Scalar + Element,

    source

    pub fn as_matrix_mut(&self) -> DMatrixViewMut<'_, N, Dyn, Dyn>

    Convert this two-dimensional array into a nalgebra::DMatrixViewMut using dynamic strides.

    \n
    Panics
    \n

    Panics if the array has negative strides.

    \n
    ",0,"numpy::borrow::PyReadwriteArray2"],["
    source§

    impl<'py, T> PyReadwriteArray<'py, T, Ix1>
    where\n T: Element,

    source

    pub fn resize<ID: IntoDimension>(self, dims: ID) -> PyResult<Self>

    Extends or truncates the dimensions of an array.

    \n

    Safe wrapper for PyArray::resize.

    \n
    Example
    \n
    use numpy::PyArray;\nuse pyo3::Python;\n\nPython::with_gil(|py| {\n    let pyarray = PyArray::arange(py, 0, 10, 1);\n    assert_eq!(pyarray.len(), 10);\n\n    let pyarray = pyarray.readwrite();\n    let pyarray = pyarray.resize(100).unwrap();\n    assert_eq!(pyarray.len(), 100);\n});
    \n
    ",0,"numpy::borrow::PyReadwriteArray1"],["
    source§

    impl<'a, T, D> Drop for PyReadwriteArray<'a, T, D>
    where\n T: Element,\n D: Dimension,

    source§

    fn drop(&mut self)

    Executes the destructor for this type. Read more
    ","Drop","numpy::borrow::PyReadwriteArray0","numpy::borrow::PyReadwriteArray1","numpy::borrow::PyReadwriteArray2","numpy::borrow::PyReadwriteArray3","numpy::borrow::PyReadwriteArray4","numpy::borrow::PyReadwriteArray5","numpy::borrow::PyReadwriteArray6","numpy::borrow::PyReadwriteArrayDyn"],["
    source§

    impl<'py, T, D> Deref for PyReadwriteArray<'py, T, D>
    where\n T: Element,\n D: Dimension,

    §

    type Target = PyReadonlyArray<'py, T, D>

    The resulting type after dereferencing.
    source§

    fn deref(&self) -> &Self::Target

    Dereferences the value.
    ","Deref","numpy::borrow::PyReadwriteArray0","numpy::borrow::PyReadwriteArray1","numpy::borrow::PyReadwriteArray2","numpy::borrow::PyReadwriteArray3","numpy::borrow::PyReadwriteArray4","numpy::borrow::PyReadwriteArray5","numpy::borrow::PyReadwriteArray6","numpy::borrow::PyReadwriteArrayDyn"],["
    source§

    impl<'py, T, D> Debug for PyReadwriteArray<'py, T, D>
    where\n T: Element,\n D: Dimension,

    source§

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

    Formats the value using the given formatter. Read more
    ","Debug","numpy::borrow::PyReadwriteArray0","numpy::borrow::PyReadwriteArray1","numpy::borrow::PyReadwriteArray2","numpy::borrow::PyReadwriteArray3","numpy::borrow::PyReadwriteArray4","numpy::borrow::PyReadwriteArray5","numpy::borrow::PyReadwriteArray6","numpy::borrow::PyReadwriteArrayDyn"],["
    source§

    impl<'py, T: Element, D: Dimension> FromPyObject<'py> for PyReadwriteArray<'py, T, D>

    source§

    fn extract(obj: &'py PyAny) -> PyResult<Self>

    Extracts Self from the source GIL Ref obj. Read more
    §

    fn extract_bound(ob: &Bound<'py, PyAny>) -> Result<Self, PyErr>

    Extracts Self from the bound smart pointer obj. Read more
    ","FromPyObject<'py>","numpy::borrow::PyReadwriteArray0","numpy::borrow::PyReadwriteArray1","numpy::borrow::PyReadwriteArray2","numpy::borrow::PyReadwriteArray3","numpy::borrow::PyReadwriteArray4","numpy::borrow::PyReadwriteArray5","numpy::borrow::PyReadwriteArray6","numpy::borrow::PyReadwriteArrayDyn"]] };if (window.register_type_impls) {window.register_type_impls(type_impls);} else {window.pending_type_impls = type_impls;}})() \ No newline at end of file diff --git a/type.impl/numpy/npyffi/types/struct.npy_cdouble.js b/type.impl/numpy/npyffi/types/struct.npy_cdouble.js index 059d9ae50..4302b1905 100644 --- a/type.impl/numpy/npyffi/types/struct.npy_cdouble.js +++ b/type.impl/numpy/npyffi/types/struct.npy_cdouble.js @@ -1,3 +1,3 @@ (function() {var type_impls = { -"numpy":[["
    source§

    impl Copy for npy_cdouble

    ","Copy","numpy::npyffi::types::npy_complex128"],["
    source§

    impl Debug for npy_cdouble

    source§

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

    Formats the value using the given formatter. Read more
    ","Debug","numpy::npyffi::types::npy_complex128"],["
    source§

    impl Clone for npy_cdouble

    source§

    fn clone(&self) -> npy_cdouble

    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
    ","Clone","numpy::npyffi::types::npy_complex128"]] +"numpy":[["
    source§

    impl Debug for npy_cdouble

    source§

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

    Formats the value using the given formatter. Read more
    ","Debug","numpy::npyffi::types::npy_complex128"],["
    source§

    impl Copy for npy_cdouble

    ","Copy","numpy::npyffi::types::npy_complex128"],["
    source§

    impl Clone for npy_cdouble

    source§

    fn clone(&self) -> npy_cdouble

    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
    ","Clone","numpy::npyffi::types::npy_complex128"]] };if (window.register_type_impls) {window.register_type_impls(type_impls);} else {window.pending_type_impls = type_impls;}})() \ No newline at end of file diff --git a/type.impl/numpy/npyffi/types/struct.npy_cfloat.js b/type.impl/numpy/npyffi/types/struct.npy_cfloat.js index 95d68bcc0..41baf092f 100644 --- a/type.impl/numpy/npyffi/types/struct.npy_cfloat.js +++ b/type.impl/numpy/npyffi/types/struct.npy_cfloat.js @@ -1,3 +1,3 @@ (function() {var type_impls = { -"numpy":[["
    source§

    impl Debug for npy_cfloat

    source§

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

    Formats the value using the given formatter. Read more
    ","Debug","numpy::npyffi::types::npy_complex64"],["
    source§

    impl Clone for npy_cfloat

    source§

    fn clone(&self) -> npy_cfloat

    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
    ","Clone","numpy::npyffi::types::npy_complex64"],["
    source§

    impl Copy for npy_cfloat

    ","Copy","numpy::npyffi::types::npy_complex64"]] +"numpy":[["
    source§

    impl Clone for npy_cfloat

    source§

    fn clone(&self) -> npy_cfloat

    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
    ","Clone","numpy::npyffi::types::npy_complex64"],["
    source§

    impl Copy for npy_cfloat

    ","Copy","numpy::npyffi::types::npy_complex64"],["
    source§

    impl Debug for npy_cfloat

    source§

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

    Formats the value using the given formatter. Read more
    ","Debug","numpy::npyffi::types::npy_complex64"]] };if (window.register_type_impls) {window.register_type_impls(type_impls);} else {window.pending_type_impls = type_impls;}})() \ No newline at end of file diff --git a/type.impl/numpy/npyffi/types/struct.npy_clongdouble.js b/type.impl/numpy/npyffi/types/struct.npy_clongdouble.js index 4d6f65747..8d0c1f59a 100644 --- a/type.impl/numpy/npyffi/types/struct.npy_clongdouble.js +++ b/type.impl/numpy/npyffi/types/struct.npy_clongdouble.js @@ -1,3 +1,3 @@ (function() {var type_impls = { -"numpy":[["
    source§

    impl Copy for npy_clongdouble

    ","Copy","numpy::npyffi::types::npy_complex256"],["
    source§

    impl Debug for npy_clongdouble

    source§

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

    Formats the value using the given formatter. Read more
    ","Debug","numpy::npyffi::types::npy_complex256"],["
    source§

    impl Clone for npy_clongdouble

    source§

    fn clone(&self) -> npy_clongdouble

    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
    ","Clone","numpy::npyffi::types::npy_complex256"]] +"numpy":[["
    source§

    impl Clone for npy_clongdouble

    source§

    fn clone(&self) -> npy_clongdouble

    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
    ","Clone","numpy::npyffi::types::npy_complex256"],["
    source§

    impl Copy for npy_clongdouble

    ","Copy","numpy::npyffi::types::npy_complex256"],["
    source§

    impl Debug for npy_clongdouble

    source§

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

    Formats the value using the given formatter. Read more
    ","Debug","numpy::npyffi::types::npy_complex256"]] };if (window.register_type_impls) {window.register_type_impls(type_impls);} else {window.pending_type_impls = type_impls;}})() \ No newline at end of file diff --git a/type.impl/numpy/struct.PyArrayLike.js b/type.impl/numpy/struct.PyArrayLike.js index 2c8c5d211..471c657ac 100644 --- a/type.impl/numpy/struct.PyArrayLike.js +++ b/type.impl/numpy/struct.PyArrayLike.js @@ -1,3 +1,3 @@ (function() {var type_impls = { -"numpy":[["
    source§

    impl<'py, T, D, C> Debug for PyArrayLike<'py, T, D, C>
    where\n T: Element + Debug,\n D: Dimension + Debug,\n C: Coerce + Debug,

    source§

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

    Formats the value using the given formatter. Read more
    ","Debug","numpy::array_like::PyArrayLike0","numpy::array_like::PyArrayLike1","numpy::array_like::PyArrayLike2","numpy::array_like::PyArrayLike3","numpy::array_like::PyArrayLike4","numpy::array_like::PyArrayLike5","numpy::array_like::PyArrayLike6","numpy::array_like::PyArrayLikeDyn"],["
    source§

    impl<'py, T, D, C> Deref for PyArrayLike<'py, T, D, C>
    where\n T: Element,\n D: Dimension,\n C: Coerce,

    §

    type Target = PyReadonlyArray<'py, T, D>

    The resulting type after dereferencing.
    source§

    fn deref(&self) -> &Self::Target

    Dereferences the value.
    ","Deref","numpy::array_like::PyArrayLike0","numpy::array_like::PyArrayLike1","numpy::array_like::PyArrayLike2","numpy::array_like::PyArrayLike3","numpy::array_like::PyArrayLike4","numpy::array_like::PyArrayLike5","numpy::array_like::PyArrayLike6","numpy::array_like::PyArrayLikeDyn"],["
    source§

    impl<'py, T, D, C> FromPyObject<'py> for PyArrayLike<'py, T, D, C>
    where\n T: Element,\n D: Dimension,\n C: Coerce,\n Vec<T>: FromPyObject<'py>,

    source§

    fn extract(ob: &'py PyAny) -> PyResult<Self>

    Extracts Self from the source GIL Ref obj. Read more
    §

    fn extract_bound(ob: &Bound<'py, PyAny>) -> Result<Self, PyErr>

    Extracts Self from the bound smart pointer obj. Read more
    ","FromPyObject<'py>","numpy::array_like::PyArrayLike0","numpy::array_like::PyArrayLike1","numpy::array_like::PyArrayLike2","numpy::array_like::PyArrayLike3","numpy::array_like::PyArrayLike4","numpy::array_like::PyArrayLike5","numpy::array_like::PyArrayLike6","numpy::array_like::PyArrayLikeDyn"]] +"numpy":[["
    source§

    impl<'py, T, D, C> Debug for PyArrayLike<'py, T, D, C>
    where\n T: Element + Debug,\n D: Dimension + Debug,\n C: Coerce + Debug,

    source§

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

    Formats the value using the given formatter. Read more
    ","Debug","numpy::array_like::PyArrayLike0","numpy::array_like::PyArrayLike1","numpy::array_like::PyArrayLike2","numpy::array_like::PyArrayLike3","numpy::array_like::PyArrayLike4","numpy::array_like::PyArrayLike5","numpy::array_like::PyArrayLike6","numpy::array_like::PyArrayLikeDyn"],["
    source§

    impl<'py, T, D, C> FromPyObject<'py> for PyArrayLike<'py, T, D, C>
    where\n T: Element,\n D: Dimension,\n C: Coerce,\n Vec<T>: FromPyObject<'py>,

    source§

    fn extract(ob: &'py PyAny) -> PyResult<Self>

    Extracts Self from the source GIL Ref obj. Read more
    §

    fn extract_bound(ob: &Bound<'py, PyAny>) -> Result<Self, PyErr>

    Extracts Self from the bound smart pointer obj. Read more
    ","FromPyObject<'py>","numpy::array_like::PyArrayLike0","numpy::array_like::PyArrayLike1","numpy::array_like::PyArrayLike2","numpy::array_like::PyArrayLike3","numpy::array_like::PyArrayLike4","numpy::array_like::PyArrayLike5","numpy::array_like::PyArrayLike6","numpy::array_like::PyArrayLikeDyn"],["
    source§

    impl<'py, T, D, C> Deref for PyArrayLike<'py, T, D, C>
    where\n T: Element,\n D: Dimension,\n C: Coerce,

    §

    type Target = PyReadonlyArray<'py, T, D>

    The resulting type after dereferencing.
    source§

    fn deref(&self) -> &Self::Target

    Dereferences the value.
    ","Deref","numpy::array_like::PyArrayLike0","numpy::array_like::PyArrayLike1","numpy::array_like::PyArrayLike2","numpy::array_like::PyArrayLike3","numpy::array_like::PyArrayLike4","numpy::array_like::PyArrayLike5","numpy::array_like::PyArrayLike6","numpy::array_like::PyArrayLikeDyn"]] };if (window.register_type_impls) {window.register_type_impls(type_impls);} else {window.pending_type_impls = type_impls;}})() \ No newline at end of file diff --git a/type.impl/std/primitive.f32.js b/type.impl/std/primitive.f32.js index fcc5bd545..dc7d02188 100644 --- a/type.impl/std/primitive.f32.js +++ b/type.impl/std/primitive.f32.js @@ -1,3 +1,3 @@ (function() {var type_impls = { -"numpy":[["
    source§

    impl Element for f32

    source§

    const IS_COPY: bool = true

    Flag that indicates whether this type is trivially copyable. Read more
    source§

    fn get_dtype<'py>(py: Python<'py>) -> &'py PyArrayDescr

    Returns the associated type descriptor (“dtype”) for the given element type.
    ","Element","numpy::npyffi::types::npy_float","numpy::npyffi::types::npy_float32"]] +"numpy":[["
    source§

    impl Element for f32

    source§

    const IS_COPY: bool = true

    Flag that indicates whether this type is trivially copyable. Read more
    source§

    fn get_dtype_bound(py: Python<'_>) -> Bound<'_, PyArrayDescr>

    Returns the associated type descriptor (“dtype”) for the given element type.
    source§

    fn get_dtype<'py>(py: Python<'py>) -> &'py PyArrayDescr

    👎Deprecated since 0.21.0: This will be replaced by get_dtype_bound in the future.
    Returns the associated type descriptor (“dtype”) for the given element type.
    ","Element","numpy::npyffi::types::npy_float","numpy::npyffi::types::npy_float32"]] };if (window.register_type_impls) {window.register_type_impls(type_impls);} else {window.pending_type_impls = type_impls;}})() \ No newline at end of file diff --git a/type.impl/std/primitive.f64.js b/type.impl/std/primitive.f64.js index 7ae49d64a..634edbe81 100644 --- a/type.impl/std/primitive.f64.js +++ b/type.impl/std/primitive.f64.js @@ -1,3 +1,3 @@ (function() {var type_impls = { -"numpy":[["
    source§

    impl Element for f64

    source§

    const IS_COPY: bool = true

    Flag that indicates whether this type is trivially copyable. Read more
    source§

    fn get_dtype<'py>(py: Python<'py>) -> &'py PyArrayDescr

    Returns the associated type descriptor (“dtype”) for the given element type.
    ","Element","numpy::npyffi::types::npy_longdouble","numpy::npyffi::types::npy_double","numpy::npyffi::types::npy_float64"]] +"numpy":[["
    source§

    impl Element for f64

    source§

    const IS_COPY: bool = true

    Flag that indicates whether this type is trivially copyable. Read more
    source§

    fn get_dtype_bound(py: Python<'_>) -> Bound<'_, PyArrayDescr>

    Returns the associated type descriptor (“dtype”) for the given element type.
    source§

    fn get_dtype<'py>(py: Python<'py>) -> &'py PyArrayDescr

    👎Deprecated since 0.21.0: This will be replaced by get_dtype_bound in the future.
    Returns the associated type descriptor (“dtype”) for the given element type.
    ","Element","numpy::npyffi::types::npy_longdouble","numpy::npyffi::types::npy_double","numpy::npyffi::types::npy_float64"]] };if (window.register_type_impls) {window.register_type_impls(type_impls);} else {window.pending_type_impls = type_impls;}})() \ No newline at end of file