Struct steap_by_steap::heap::Heap
source · pub struct Heap {
data: Vec<i32>,
}
Expand description
A heap data structure implemented in Rust and exposed to Python.
Fields§
§data: Vec<i32>
Implementations§
source§impl Heap
impl Heap
sourcefn pop(&mut self) -> Option<i32>
fn pop(&mut self) -> Option<i32>
Pops the maximum value off the heap.
Returns Some(i32)
if the heap is not empty, otherwise returns None
.
sourcefn heapsort(&mut self) -> Vec<i32>
fn heapsort(&mut self) -> Vec<i32>
Sorts the heap and returns a sorted vector.
This consumes the heap.
sourcefn sift_down_from(&mut self, idx: usize)
fn sift_down_from(&mut self, idx: usize)
Sifts down the element at the given index to maintain heap property.
§Arguments
idx
- The index of the element to sift down.
Trait Implementations§
source§impl HasPyGilRef for Heap
impl HasPyGilRef for Heap
§type AsRefTarget = PyCell<Heap>
type AsRefTarget = PyCell<Heap>
Utility type to make Py::as_ref work.
source§impl PyClassImpl for Heap
impl PyClassImpl for Heap
source§const IS_BASETYPE: bool = false
const IS_BASETYPE: bool = false
#[pyclass(subclass)]
source§const IS_SUBCLASS: bool = false
const IS_SUBCLASS: bool = false
#[pyclass(extends=…)]
source§const IS_MAPPING: bool = false
const IS_MAPPING: bool = false
#[pyclass(mapping)]
source§const IS_SEQUENCE: bool = false
const IS_SEQUENCE: bool = false
#[pyclass(sequence)]
§type ThreadChecker = SendablePyClass<Heap>
type ThreadChecker = SendablePyClass<Heap>
This handles following two situations: Read more
§type PyClassMutability = <<PyAny as PyClassBaseType>::PyClassMutability as PyClassMutability>::MutableChild
type PyClassMutability = <<PyAny as PyClassBaseType>::PyClassMutability as PyClassMutability>::MutableChild
Immutable or mutable
§type Dict = PyClassDummySlot
type Dict = PyClassDummySlot
Specify this class has
#[pyclass(dict)]
or not.§type WeakRef = PyClassDummySlot
type WeakRef = PyClassDummySlot
Specify this class has
#[pyclass(weakref)]
or not.§type BaseNativeType = PyAny
type BaseNativeType = PyAny
The closest native ancestor. This is
PyAny
by default, and when you declare
#[pyclass(extends=PyDict)]
, it’s PyDict
.fn items_iter() -> PyClassItemsIter
fn lazy_type_object() -> &'static LazyTypeObject<Self>
fn dict_offset() -> Option<isize>
fn weaklist_offset() -> Option<isize>
source§impl PyClassNewTextSignature<Heap> for PyClassImplCollector<Heap>
impl PyClassNewTextSignature<Heap> for PyClassImplCollector<Heap>
fn new_text_signature(self) -> Option<&'static str>
source§impl<'a, 'py> PyFunctionArgument<'a, 'py> for &'a Heap
impl<'a, 'py> PyFunctionArgument<'a, 'py> for &'a Heap
source§impl<'a, 'py> PyFunctionArgument<'a, 'py> for &'a mut Heap
impl<'a, 'py> PyFunctionArgument<'a, 'py> for &'a mut Heap
source§impl PyMethods<Heap> for PyClassImplCollector<Heap>
impl PyMethods<Heap> for PyClassImplCollector<Heap>
fn py_methods(self) -> &'static PyClassItems
source§impl PyTypeInfo for Heap
impl PyTypeInfo for Heap
source§fn type_object_raw(py: Python<'_>) -> *mut PyTypeObject
fn type_object_raw(py: Python<'_>) -> *mut PyTypeObject
Returns the PyTypeObject instance for this type.
source§fn type_object(py: Python<'_>) -> &PyType
fn type_object(py: Python<'_>) -> &PyType
👎Deprecated since 0.21.0:
PyTypeInfo::type_object
will be replaced by PyTypeInfo::type_object_bound
in a future PyO3 versionReturns the safe abstraction over the type object.
source§fn type_object_bound(py: Python<'_>) -> Bound<'_, PyType>
fn type_object_bound(py: Python<'_>) -> Bound<'_, PyType>
Returns the safe abstraction over the type object.
source§fn is_type_of(object: &PyAny) -> bool
fn is_type_of(object: &PyAny) -> bool
👎Deprecated since 0.21.0:
PyTypeInfo::is_type_of
will be replaced by PyTypeInfo::is_type_of_bound
in a future PyO3 versionChecks if
object
is an instance of this type or a subclass of this type.source§fn is_type_of_bound(object: &Bound<'_, PyAny>) -> bool
fn is_type_of_bound(object: &Bound<'_, PyAny>) -> bool
Checks if
object
is an instance of this type or a subclass of this type.source§fn is_exact_type_of(object: &PyAny) -> bool
fn is_exact_type_of(object: &PyAny) -> bool
👎Deprecated since 0.21.0:
PyTypeInfo::is_exact_type_of
will be replaced by PyTypeInfo::is_exact_type_of_bound
in a future PyO3 versionChecks if
object
is an instance of this type.impl DerefToPyAny for Heap
Auto Trait Implementations§
impl Freeze for Heap
impl RefUnwindSafe for Heap
impl Send for Heap
impl Sync for Heap
impl Unpin for Heap
impl UnwindSafe for Heap
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