pub struct PyBufferRequest<Flag: PyBufferRequestType = PyBufferFlags<false, false, false, false, false, CONTIGUITY_UNDEFINED>>(c_int, PhantomData<Flag>);Py_3_11 or non-Py_LIMITED_API only.Expand description
Type-safe buffer request. The state parameter is intentionally hidden behind this wrapper so the internal encoding can evolve.
The requested flags constrain what exporters are allowed to return. For example, without shape information, only 1-dimensional buffers are permitted, and accessors for unrequested metadata are unavailable on the typed view.
Tuple Fields§
§0: c_int§1: PhantomData<Flag>Implementations§
Source§impl<Flag: PyBufferRequestType> PyBufferRequest<Flag>
impl<Flag: PyBufferRequestType> PyBufferRequest<Flag>
Sourcepub const fn format(self) -> PyBufferRequest<Flag::WithFormat>where
Flag: CanRequestFormat,
pub const fn format(self) -> PyBufferRequest<Flag::WithFormat>where
Flag: CanRequestFormat,
Request format information.
Sourcepub const fn nd(self) -> PyBufferRequest<Flag::WithShape>where
Flag: CanRequestShape,
pub const fn nd(self) -> PyBufferRequest<Flag::WithShape>where
Flag: CanRequestShape,
Request shape information.
Sourcepub const fn strides(self) -> PyBufferRequest<Flag::WithStrides>where
Flag: CanRequestStrides,
pub const fn strides(self) -> PyBufferRequest<Flag::WithStrides>where
Flag: CanRequestStrides,
Request strides information. Implies shape.
Sourcepub const fn indirect(self) -> PyBufferRequest<Flag::WithIndirect>where
Flag: CanRequestIndirect,
pub const fn indirect(self) -> PyBufferRequest<Flag::WithIndirect>where
Flag: CanRequestIndirect,
Request suboffsets (indirect). Implies shape and strides.
Sourcepub const fn writable(self) -> PyBufferRequest<Flag::WithWritable>where
Flag: CanRequestWritable,
pub const fn writable(self) -> PyBufferRequest<Flag::WithWritable>where
Flag: CanRequestWritable,
Request a writable buffer.
Sourcepub const fn c_contiguous(self) -> PyBufferRequest<Flag::WithCContiguous>where
Flag: CanRequestContiguity,
pub const fn c_contiguous(self) -> PyBufferRequest<Flag::WithCContiguous>where
Flag: CanRequestContiguity,
Require C-contiguous layout. Implies shape and strides.
Sourcepub const fn f_contiguous(self) -> PyBufferRequest<Flag::WithFContiguous>where
Flag: CanRequestContiguity,
pub const fn f_contiguous(self) -> PyBufferRequest<Flag::WithFContiguous>where
Flag: CanRequestContiguity,
Require Fortran-contiguous layout. Implies shape and strides.
Sourcepub const fn any_contiguous(self) -> PyBufferRequest<Flag::WithAnyContiguous>where
Flag: CanRequestContiguity,
pub const fn any_contiguous(self) -> PyBufferRequest<Flag::WithAnyContiguous>where
Flag: CanRequestContiguity,
Require contiguous layout (C or Fortran). Implies shape and strides.
The specific contiguity order is not known at compile time, so this does not unlock non-Option slice accessors.
Source§impl PyBufferRequest
impl PyBufferRequest
Sourcepub const fn simple() -> PyBufferRequest<RequestFlags<false, false, false, false, false, CONTIGUITY_UNDEFINED>>
pub const fn simple() -> PyBufferRequest<RequestFlags<false, false, false, false, false, CONTIGUITY_UNDEFINED>>
Create a base buffer request. Chain builder methods to add flags.
Sourcepub const fn full() -> PyBufferRequest<RequestFlags<true, true, true, true, true, CONTIGUITY_UNDEFINED>>
pub const fn full() -> PyBufferRequest<RequestFlags<true, true, true, true, true, CONTIGUITY_UNDEFINED>>
Create a writable request for all buffer information including suboffsets.
Sourcepub const fn full_ro() -> PyBufferRequest<RequestFlags<true, true, true, true, false, CONTIGUITY_UNDEFINED>>
pub const fn full_ro() -> PyBufferRequest<RequestFlags<true, true, true, true, false, CONTIGUITY_UNDEFINED>>
Create a read-only request for all buffer information including suboffsets.
Sourcepub const fn records() -> PyBufferRequest<RequestFlags<true, true, true, false, true, CONTIGUITY_UNDEFINED>>
pub const fn records() -> PyBufferRequest<RequestFlags<true, true, true, false, true, CONTIGUITY_UNDEFINED>>
Create a writable request for format, shape, and strides.
Sourcepub const fn records_ro() -> PyBufferRequest<RequestFlags<true, true, true, false, false, CONTIGUITY_UNDEFINED>>
pub const fn records_ro() -> PyBufferRequest<RequestFlags<true, true, true, false, false, CONTIGUITY_UNDEFINED>>
Create a read-only request for format, shape, and strides.
Sourcepub const fn strided() -> PyBufferRequest<RequestFlags<false, true, true, false, true, CONTIGUITY_UNDEFINED>>
pub const fn strided() -> PyBufferRequest<RequestFlags<false, true, true, false, true, CONTIGUITY_UNDEFINED>>
Create a writable request for shape and strides.
Sourcepub const fn strided_ro() -> PyBufferRequest<RequestFlags<false, true, true, false, false, CONTIGUITY_UNDEFINED>>
pub const fn strided_ro() -> PyBufferRequest<RequestFlags<false, true, true, false, false, CONTIGUITY_UNDEFINED>>
Create a read-only request for shape and strides.
Sourcepub const fn contig() -> PyBufferRequest<RequestFlags<false, true, false, false, true, CONTIGUITY_C>>
pub const fn contig() -> PyBufferRequest<RequestFlags<false, true, false, false, true, CONTIGUITY_C>>
Create a writable C-contiguous request.
Sourcepub const fn contig_ro() -> PyBufferRequest<RequestFlags<false, true, false, false, false, CONTIGUITY_C>>
pub const fn contig_ro() -> PyBufferRequest<RequestFlags<false, true, false, false, false, CONTIGUITY_C>>
Create a read-only C-contiguous request.
Auto Trait Implementations§
impl<Flag> Freeze for PyBufferRequest<Flag>where
PhantomData<Flag>: Freeze,
impl<Flag> RefUnwindSafe for PyBufferRequest<Flag>where
PhantomData<Flag>: RefUnwindSafe,
impl<Flag> Send for PyBufferRequest<Flag>where
PhantomData<Flag>: Send,
impl<Flag> Sync for PyBufferRequest<Flag>where
PhantomData<Flag>: Sync,
impl<Flag> Unpin for PyBufferRequest<Flag>where
PhantomData<Flag>: Unpin,
impl<Flag> UnsafeUnpin for PyBufferRequest<Flag>where
PhantomData<Flag>: UnsafeUnpin,
impl<Flag> UnwindSafe for PyBufferRequest<Flag>where
PhantomData<Flag>: UnwindSafe,
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
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> SizeHint for Twhere
T: ?Sized,
impl<T> SizeHint for Twhere
T: ?Sized,
Source§default fn lower_bound(&self) -> usize
default fn lower_bound(&self) -> usize
core_io_internals)[u8; 12] could return any value between 0 and
12 inclusively as a correct implementation. Read moreSource§impl<T> SizedTypeProperties for T
impl<T> SizedTypeProperties for T
Source§#[doc(hidden)]const SIZE: usize = _
#[doc(hidden)]const SIZE: usize = _
sized_type_properties)Source§#[doc(hidden)]const ALIGN: usize = _
#[doc(hidden)]const ALIGN: usize = _
sized_type_properties)Source§#[doc(hidden)]const ALIGNMENT: Alignment = _
#[doc(hidden)]const ALIGNMENT: Alignment = _
ptr_alignment_type)Source§#[doc(hidden)]const IS_ZST: bool = _
#[doc(hidden)]const IS_ZST: bool = _
sized_type_properties)Source§#[doc(hidden)]const LAYOUT: Layout = _
#[doc(hidden)]const LAYOUT: Layout = _
sized_type_properties)Source§#[doc(hidden)]const MAX_SLICE_LEN: usize = _
#[doc(hidden)]const MAX_SLICE_LEN: usize = _
sized_type_properties)[Self]. Read more