#[repr(transparent)]pub struct PyFixedString<const N: usize>(pub [Py_UCS1; N]);Expand description
A newtype wrapper around [u8; N] to handle byte scalars while satisfying coherence.
Note that when creating arrays of ASCII strings without an explicit dtype,
NumPy will automatically determine the smallest possible array length at runtime.
For example,
array = numpy.array([b"foo", b"bar", b"foobar"])yields S6 for array.dtype.
On the Rust side however, the length N of PyFixedString<N> must always be given
explicitly and as a compile-time constant. For this work reliably, the Python code
should set the dtype explicitly, e.g.
numpy.array([b"foo", b"bar", b"foobar"], dtype='S12')always matching PyArray1<PyFixedString<12>>.
§Example
use numpy::{PyArray1, PyUntypedArrayMethods, PyFixedString};
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>
impl<const N: usize> Clone for PyFixedString<N>
Source§fn clone(&self) -> PyFixedString<N>
fn clone(&self) -> PyFixedString<N>
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl<const N: usize> Debug for PyFixedString<N>
impl<const N: usize> Debug for PyFixedString<N>
Source§impl<const N: usize> Display for PyFixedString<N>
impl<const N: usize> Display for PyFixedString<N>
Source§impl<const N: usize> Element for PyFixedString<N>
impl<const N: usize> Element for PyFixedString<N>
Source§const IS_COPY: bool = true
const IS_COPY: bool = true
Flag that indicates whether this type is trivially copyable. Read more
Source§fn get_dtype(py: Python<'_>) -> Bound<'_, PyArrayDescr>
fn get_dtype(py: Python<'_>) -> Bound<'_, PyArrayDescr>
Returns the associated type descriptor (“dtype”) for the given element type.
Source§fn clone_ref(&self, _py: Python<'_>) -> Self
fn clone_ref(&self, _py: Python<'_>) -> Self
Create a clone of the value while the GIL is guaranteed to be held.
Source§fn vec_from_slice(_py: Python<'_>, slc: &[Self]) -> Vec<Self>
fn vec_from_slice(_py: Python<'_>, slc: &[Self]) -> Vec<Self>
Create an owned copy of the slice while the GIL is guaranteed to be held. Read more
Source§fn array_from_view<D>(
_py: Python<'_>,
view: ArrayView<'_, Self, D>,
) -> Array<Self, D>where
D: Dimension,
fn array_from_view<D>(
_py: Python<'_>,
view: ArrayView<'_, Self, D>,
) -> Array<Self, D>where
D: Dimension,
Create an owned copy of the array while the GIL is guaranteed to be held. Read more
Source§fn get_dtype_bound(py: Python<'_>) -> Bound<'_, PyArrayDescr>
fn get_dtype_bound(py: Python<'_>) -> Bound<'_, PyArrayDescr>
👎Deprecated since 0.23.0: renamed to
Element::get_dtypeDeprecated name for
Element::get_dtype.Source§impl<const N: usize> Hash for PyFixedString<N>
impl<const N: usize> Hash for PyFixedString<N>
Source§impl<const N: usize> Ord for PyFixedString<N>
impl<const N: usize> Ord for PyFixedString<N>
Source§fn cmp(&self, other: &PyFixedString<N>) -> Ordering
fn cmp(&self, other: &PyFixedString<N>) -> Ordering
1.21.0 · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the maximum of two values. Read more
Source§impl<const N: usize> PartialEq for PyFixedString<N>
impl<const N: usize> PartialEq for PyFixedString<N>
Source§impl<const N: usize> PartialOrd for PyFixedString<N>
impl<const N: usize> PartialOrd for PyFixedString<N>
impl<const N: usize> Copy for PyFixedString<N>
impl<const N: usize> Eq for PyFixedString<N>
impl<const N: usize> StructuralPartialEq for PyFixedString<N>
Auto Trait Implementations§
impl<const N: usize> Freeze for PyFixedString<N>
impl<const N: usize> RefUnwindSafe for PyFixedString<N>
impl<const N: usize> Send for PyFixedString<N>
impl<const N: usize> Sync for PyFixedString<N>
impl<const N: usize> Unpin for PyFixedString<N>
impl<const N: usize> UnwindSafe for PyFixedString<N>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more