pub struct PyByteArray { /* private fields */ }Implementations§
Source§impl PyByteArray
impl PyByteArray
pub fn new_ref(data: Vec<u8>, ctx: &Context) -> PyRef<Self>
👎Deprecated:
use PyByteArray::from(…).into_ref() instead
pub fn borrow_buf(&self) -> PyMappedRwLockReadGuard<'_, [u8]>
pub fn borrow_buf_mut(&self) -> PyMappedRwLockWriteGuard<'_, Vec<u8>>
pub fn _delitem(&self, needle: &PyObject, vm: &VirtualMachine) -> PyResult<()>
Source§impl PyByteArray
impl PyByteArray
pub fn __delitem__( &self, needle: PyObjectRef, vm: &VirtualMachine, ) -> PyResult<()>
Trait Implementations§
Source§impl AsBuffer for PyByteArray
impl AsBuffer for PyByteArray
fn as_buffer(zelf: &Py<Self>, _vm: &VirtualMachine) -> PyResult<PyBuffer>
fn slot_as_buffer(zelf: &PyObject, vm: &VirtualMachine) -> PyResult<PyBuffer>
const __OWN_METHOD_DEFS: &'static [PyMethodDef] = _
fn __extend_py_class(ctx: &'static Context, class: &'static Py<PyType>)
fn __extend_slots(slots: &mut PyTypeSlots)
Source§impl AsMapping for PyByteArray
impl AsMapping for PyByteArray
fn as_mapping() -> &'static PyMappingMethods
fn mapping_downcast(mapping: PyMapping<'_>) -> &Py<Self>
fn extend_slots(slots: &mut PyTypeSlots)
const __OWN_METHOD_DEFS: &'static [PyMethodDef] = _
fn __extend_py_class(ctx: &'static Context, class: &'static Py<PyType>)
fn __extend_slots(slots: &mut PyTypeSlots)
Source§impl AsNumber for PyByteArray
impl AsNumber for PyByteArray
fn as_number() -> &'static PyNumberMethods
fn extend_slots(slots: &mut PyTypeSlots)
fn clone_exact(_zelf: &Py<Self>, _vm: &VirtualMachine) -> PyRef<Self>
fn number_downcast(num: PyNumber<'_>) -> &Py<Self>
fn number_downcast_exact(num: PyNumber<'_>, vm: &VirtualMachine) -> PyRef<Self>
const __OWN_METHOD_DEFS: &'static [PyMethodDef] = _
fn __extend_py_class(ctx: &'static Context, class: &'static Py<PyType>)
fn __extend_slots(slots: &mut PyTypeSlots)
Source§impl AsSequence for PyByteArray
impl AsSequence for PyByteArray
fn as_sequence() -> &'static PySequenceMethods
fn sequence_downcast(seq: PySequence<'_>) -> &Py<Self>
fn extend_slots(slots: &mut PyTypeSlots)
const __OWN_METHOD_DEFS: &'static [PyMethodDef] = _
fn __extend_py_class(ctx: &'static Context, class: &'static Py<PyType>)
fn __extend_slots(slots: &mut PyTypeSlots)
Source§impl BufferResizeGuard for PyByteArray
impl BufferResizeGuard for PyByteArray
type Resizable<'a> = RwLockWriteGuard<'a, RawCellRwLock, PyBytesInner>
fn try_resizable_opt(&self) -> Option<Self::Resizable<'_>>
fn try_resizable(&self, vm: &VirtualMachine) -> PyResult<Self::Resizable<'_>>
Source§impl Comparable for PyByteArray
impl Comparable for PyByteArray
fn cmp( zelf: &Py<Self>, other: &PyObject, op: PyComparisonOp, vm: &VirtualMachine, ) -> PyResult<PyComparisonValue>
fn slot_richcompare( zelf: &PyObject, other: &PyObject, op: PyComparisonOp, vm: &VirtualMachine, ) -> PyResult<Either<PyObjectRef, PyComparisonValue>>
const __OWN_METHOD_DEFS: &'static [PyMethodDef] = _
fn __extend_py_class(ctx: &'static Context, class: &'static Py<PyType>)
fn __extend_slots(slots: &mut PyTypeSlots)
Source§impl Debug for PyByteArray
impl Debug for PyByteArray
Source§impl Default for PyByteArray
impl Default for PyByteArray
Source§fn default() -> PyByteArray
fn default() -> PyByteArray
Returns the “default value” for a type. Read more
Source§impl DefaultConstructor for PyByteArray
impl DefaultConstructor for PyByteArray
fn construct_and_init(
args: Self::Args,
vm: &VirtualMachine,
) -> PyResult<PyRef<Self>>where
Self: Initializer,
Source§impl Initializer for PyByteArray
impl Initializer for PyByteArray
type Args = ByteInnerNewOptions
fn init( zelf: PyRef<Self>, options: Self::Args, vm: &VirtualMachine, ) -> PyResult<()>
fn slot_init( zelf: PyObjectRef, args: FuncArgs, vm: &VirtualMachine, ) -> PyResult<()>
const __OWN_METHOD_DEFS: &'static [PyMethodDef] = _
fn __extend_py_class(ctx: &'static Context, class: &'static Py<PyType>)
fn __extend_slots(slots: &mut PyTypeSlots)
Source§impl Iterable for PyByteArray
impl Iterable for PyByteArray
fn iter(zelf: PyRef<Self>, vm: &VirtualMachine) -> PyResult
fn slot_iter(zelf: PyObjectRef, vm: &VirtualMachine) -> PyResult
fn extend_slots(_slots: &mut PyTypeSlots)
const __OWN_METHOD_DEFS: &'static [PyMethodDef] = _
fn __extend_py_class(ctx: &'static Context, class: &'static Py<PyType>)
fn __extend_slots(slots: &mut PyTypeSlots)
Source§impl MaybeTraverse for PyByteArray
impl MaybeTraverse for PyByteArray
Source§const HAS_TRAVERSE: bool = false
const HAS_TRAVERSE: bool = false
if is traceable, will be used by vtable to determine
Source§const HAS_CLEAR: bool = false
const HAS_CLEAR: bool = false
if has clear implementation for circular reference resolution (tp_clear)
fn try_traverse(&self, tracer_fn: &mut TraverseFn<'_>)
fn try_clear(&mut self, out: &mut Vec<PyObjectRef>)
Source§impl PyClassDef for PyByteArray
impl PyClassDef for PyByteArray
const NAME: &'static str = "bytearray"
const MODULE_NAME: Option<&'static str> = None
const TP_NAME: &'static str = "bytearray"
const DOC: Option<&'static str>
const BASICSIZE: usize
const UNHASHABLE: bool = true
type Base = PyBaseObject
const ITEMSIZE: usize = 0
Source§impl PyClassImpl for PyByteArray
impl PyClassImpl for PyByteArray
const TP_FLAGS: PyTypeFlags
const METHOD_DEFS: &'static [PyMethodDef]
fn impl_extend_class(ctx: &'static Context, class: &'static Py<PyType>)
fn extend_slots(slots: &mut PyTypeSlots)
fn extend_class(ctx: &'static Context, class: &'static Py<PyType>)where
Self: Sized,
fn make_static_type() -> PyTypeRefwhere
Self: StaticType + Sized,
fn make_slots() -> PyTypeSlots
Source§impl PyPayload for PyByteArray
impl PyPayload for PyByteArray
fn class(ctx: &Context) -> &'static Py<PyType>
const PAYLOAD_TYPE_ID: TypeId = _
fn try_downcast_from(obj: &PyObject, vm: &VirtualMachine) -> PyResult<()>
Source§const HAS_FREELIST: bool = false
const HAS_FREELIST: bool = false
Whether this type has a freelist. Types with freelists require
immediate (non-deferred) GC untracking during dealloc to prevent
race conditions when the object is reused.
Source§const MAX_FREELIST: usize = 0
const MAX_FREELIST: usize = 0
Maximum number of objects to keep in the freelist.
Source§unsafe fn freelist_push(_obj: *mut PyObject) -> bool
unsafe fn freelist_push(_obj: *mut PyObject) -> bool
Try to push a dead object onto this type’s freelist for reuse.
Returns true if the object was stored (caller must NOT free the memory).
Called before tp_clear, so the payload is still intact. Read more
Source§unsafe fn freelist_pop(_payload: &Self) -> Option<NonNull<PyObject>>
unsafe fn freelist_pop(_payload: &Self) -> Option<NonNull<PyObject>>
Try to pop a pre-allocated object from this type’s freelist.
The returned pointer still has the old payload; the caller must
reinitialize
ref_count, gc_bits, and payload. Read morefn into_pyobject(self, vm: &VirtualMachine) -> PyObjectRefwhere
Self: Debug,
fn _into_ref(self, cls: PyTypeRef, ctx: &Context) -> PyRef<Self>where
Self: Debug,
fn into_exact_ref(self, ctx: &Context) -> PyRefExact<Self>where
Self: Debug,
fn into_ref(self, ctx: &Context) -> PyRef<Self>where
Self: Debug,
fn into_ref_with_type(
self,
vm: &VirtualMachine,
cls: PyTypeRef,
) -> PyResult<PyRef<Self>>where
Self: Debug,
Source§impl Representable for PyByteArray
impl Representable for PyByteArray
fn repr_str(zelf: &Py<Self>, vm: &VirtualMachine) -> PyResult<String>
fn slot_repr(zelf: &PyObject, vm: &VirtualMachine) -> PyResult<PyRef<PyStr>>
fn repr(zelf: &Py<Self>, vm: &VirtualMachine) -> PyResult<PyRef<PyStr>>
fn repr_wtf8(zelf: &Py<Self>, vm: &VirtualMachine) -> PyResult<Wtf8Buf>
const __OWN_METHOD_DEFS: &'static [PyMethodDef] = _
fn __extend_py_class(ctx: &'static Context, class: &'static Py<PyType>)
fn __extend_slots(slots: &mut PyTypeSlots)
Source§impl StaticType for PyByteArray
impl StaticType for PyByteArray
fn static_cell() -> &'static StaticCell<PyTypeRef>
fn static_metaclass() -> &'static Py<PyType>
fn static_baseclass() -> &'static Py<PyType>
fn static_type() -> &'static Py<PyType>
fn init_manually(typ: PyTypeRef) -> &'static Py<PyType>
fn init_builtin_type() -> &'static Py<PyType>where
Self: PyClassImpl,
fn create_static_type() -> PyTypeRefwhere
Self: PyClassImpl,
Auto Trait Implementations§
impl !Freeze for PyByteArray
impl !RefUnwindSafe for PyByteArray
impl Send for PyByteArray
impl !Sync for PyByteArray
impl Unpin for PyByteArray
impl UnsafeUnpin for PyByteArray
impl UnwindSafe for PyByteArray
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
Source§impl<T> Constructor for Twhere
T: DefaultConstructor,
impl<T> Constructor for Twhere
T: DefaultConstructor,
type Args = FuncArgs
Source§fn slot_new(
cls: PyRef<PyType>,
_args: FuncArgs,
vm: &VirtualMachine,
) -> Result<PyObjectRef, PyRef<PyBaseException>>
fn slot_new( cls: PyRef<PyType>, _args: FuncArgs, vm: &VirtualMachine, ) -> Result<PyObjectRef, PyRef<PyBaseException>>
The type slot for
__new__. Override this only when you need special
behavior beyond simple payload creation.Source§fn py_new(
cls: &Py<PyType>,
_args: <T as Constructor>::Args,
vm: &VirtualMachine,
) -> Result<T, PyRef<PyBaseException>>
fn py_new( cls: &Py<PyType>, _args: <T as Constructor>::Args, vm: &VirtualMachine, ) -> Result<T, PyRef<PyBaseException>>
Creates the payload for this type. In most cases, just implement this method
and let the default
slot_new handle wrapping with the correct type.const __OWN_METHOD_DEFS: &'static [PyMethodDef] = _
fn __extend_py_class(ctx: &'static Context, class: &'static Py<PyType>)
fn __extend_slots(slots: &mut PyTypeSlots)
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>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read 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>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more