List of all items[−]
+List of all items in this crate List of all items[−]
Structs
- Deque
- HistoryBuffer
- IndexMap
- IndexSet
- LinearMap
- String
- Vec
- binary_heap::BinaryHeap
- binary_heap::PeekMut
- mpmc::MpMcQueue
- pool::Box
- pool::Node
- pool::Pool
- pool::singleton::Box
- pool::singleton::arc::Arc
- pool::singleton::arc::ArcInner
- sorted_linked_list::FindMut
- sorted_linked_list::Iter
- sorted_linked_list::LinkedIndexU16
- sorted_linked_list::LinkedIndexU8
- sorted_linked_list::LinkedIndexUsize
- sorted_linked_list::Max
- sorted_linked_list::Min
- sorted_linked_list::Node
- sorted_linked_list::SortedLinkedList
- spsc::Consumer
- spsc::Iter
- spsc::IterMut
- spsc::Producer
- spsc::Queue
Enums
Traits
Typedefs
diff --git a/heapless/index.html b/heapless/index.html
index 1ee4a023..a8458a06 100644
--- a/heapless/index.html
+++ b/heapless/index.html
@@ -1,4 +1,4 @@
-heapless - Rust Crate heapless[−][src]
Expand description
static
friendly data structures that don’t require dynamic memory allocation
+heapless - Rust Crate heapless[−][src]
Expand description
static
friendly data structures that don’t require dynamic memory allocation
The core principle behind heapless
is that its data structures are backed by a static memory
allocation. For example, you can think of heapless::Vec
as an alternative version of
std::Vec
with fixed capacity and that can’t be re-allocated on the fly (e.g. via push
).
diff --git a/heapless/pool/enum.Init.html b/heapless/pool/enum.Init.html
index 70120af4..f75b886a 100644
--- a/heapless/pool/enum.Init.html
+++ b/heapless/pool/enum.Init.html
@@ -1,4 +1,4 @@
-Init in heapless::pool - Rust Enum heapless::pool::Init [−][src]
pub enum Init {}
Expand description
Initialized type state
+Init in heapless::pool - Rust Enum heapless::pool::Init [−][src]
pub enum Init {}
Expand description
Initialized type state
Auto Trait Implementations
Blanket Implementations
Mutably borrows from an owned value. Read more
diff --git a/heapless/pool/enum.Uninit.html b/heapless/pool/enum.Uninit.html
index 3c3480e1..9c09ce44 100644
--- a/heapless/pool/enum.Uninit.html
+++ b/heapless/pool/enum.Uninit.html
@@ -1,4 +1,4 @@
-Uninit in heapless::pool - Rust Enum heapless::pool::Uninit [−][src]
pub enum Uninit {}
Expand description
Uninitialized type state
+Uninit in heapless::pool - Rust Enum heapless::pool::Uninit [−][src]
pub enum Uninit {}
Expand description
Uninitialized type state
Auto Trait Implementations
Blanket Implementations
Mutably borrows from an owned value. Read more
diff --git a/heapless/pool/index.html b/heapless/pool/index.html
index 302f79b8..fcd7e5cf 100644
--- a/heapless/pool/index.html
+++ b/heapless/pool/index.html
@@ -1,6 +1,6 @@
-heapless::pool - Rust Module heapless::pool [−][src]
Expand description
A heap-less, interrupt-safe, lock-free memory pool (*)
+heapless::pool - Rust Module heapless::pool [−][src]
Expand description
A heap-less, interrupt-safe, lock-free memory pool (*)
NOTE: This module is not available on targets that do not support CAS operations, e.g. ARMv6-M
-(*) Currently, the implementation is only lock-free and Sync
on ARMv7-{A,R,M} & ARMv8-M
+
(*) Currently, the implementation is only lock-free and Sync
on ARMv6, ARMv7-{A,R,M} & ARMv8-M
devices
Examples
The most common way of using this pool is as a global singleton; the singleton mode gives you
diff --git a/heapless/pool/struct.Box.html b/heapless/pool/struct.Box.html
index c4b68d43..405fe910 100644
--- a/heapless/pool/struct.Box.html
+++ b/heapless/pool/struct.Box.html
@@ -1,29 +1,29 @@
-
Box in heapless::pool - Rust Struct heapless::pool::Box [−][src]
pub struct Box<T, STATE = Init> { /* fields omitted */ }
Expand description
A memory block
-Implementations
Trait Implementations
Feeds this value into the given Hasher
. Read more
+Box in heapless::pool - Rust Struct heapless::pool::Box [−][src]
pub struct Box<T, STATE = Init> { /* fields omitted */ }
Expand description
A memory block
+Implementations
Trait Implementations
This method returns an ordering between self
and other
values if one exists. Read more
This method tests less than (for self
and other
) and is used by the <
operator. Read more
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
This method tests greater than (for self
and other
) and is used by the >
operator. Read more
Auto Trait Implementations
Blanket Implementations
Auto Trait Implementations
Blanket Implementations
Mutably borrows from an owned value. Read more
Performs the conversion.
diff --git a/heapless/pool/struct.Pool.html b/heapless/pool/struct.Pool.html
index 0a302f05..a38b43cf 100644
--- a/heapless/pool/struct.Pool.html
+++ b/heapless/pool/struct.Pool.html
@@ -1,18 +1,18 @@
Pool in heapless::pool - Rust Struct heapless::pool::Pool [−][src]
pub struct Pool<T> { /* fields omitted */ }
Expand description
A lock-free memory pool
-Implementations
Implementations
Claims a memory block from the pool
Returns None
when the pool is observed as exhausted
NOTE: This method does not have bounded execution time because it contains a CAS loop
-
Returns a memory block to the pool
NOTE: T
’s destructor (if any) will run on value
iff S = Init
NOTE: This method does not have bounded execution time because it contains a CAS loop
-
Increases the capacity of the pool
This method might not fully utilize the given memory block due to alignment requirements.
This method returns the number of new blocks that can be allocated.
-pub fn grow_exact<A>(&self, memory: &'static mut MaybeUninit<A>) -> usize where
A: AsMut<[Node<T>]>,
Increases the capacity of the pool
+pub fn grow_exact<A>(&self, memory: &'static mut MaybeUninit<A>) -> usize where
A: AsMut<[Node<T>]>,
Increases the capacity of the pool
Unlike Pool.grow
this method fully utilizes the given
memory block
-Trait Implementations
Auto Trait Implementations
Blanket Implementations
Trait Implementations
Auto Trait Implementations
Blanket Implementations
Mutably borrows from an owned value. Read more
Performs the conversion.
diff --git a/src/heapless/pool/mod.rs.html b/src/heapless/pool/mod.rs.html
index 9be6d079..8a3560f3 100644
--- a/src/heapless/pool/mod.rs.html
+++ b/src/heapless/pool/mod.rs.html
@@ -680,12 +680,13 @@
680
681
682
+683
//! A heap-less, interrupt-safe, lock-free memory pool (\*)
//!
//! NOTE: This module is not available on targets that do *not* support CAS operations, e.g. ARMv6-M
//!
-//! (\*) Currently, the implementation is only lock-free *and* `Sync` on ARMv7-{A,R,M} & ARMv8-M
+//! (\*) Currently, the implementation is only lock-free *and* `Sync` on ARMv6, ARMv7-{A,R,M} & ARMv8-M
//! devices
//!
//! # Examples
@@ -946,6 +947,7 @@
// NOTE(any(test)) makes testing easier (no need to enable Cargo features for testing)
#[cfg(any(
+ armv6m,
armv7a,
armv7r,
armv7m,
List of all items[−]
Structs
- Deque
- HistoryBuffer
- IndexMap
- IndexSet
- LinearMap
- String
- Vec
- binary_heap::BinaryHeap
- binary_heap::PeekMut
- mpmc::MpMcQueue
- pool::Box
- pool::Node
- pool::Pool
- pool::singleton::Box
- pool::singleton::arc::Arc
- pool::singleton::arc::ArcInner
- sorted_linked_list::FindMut
- sorted_linked_list::Iter
- sorted_linked_list::LinkedIndexU16
- sorted_linked_list::LinkedIndexU8
- sorted_linked_list::LinkedIndexUsize
- sorted_linked_list::Max
- sorted_linked_list::Min
- sorted_linked_list::Node
- sorted_linked_list::SortedLinkedList
- spsc::Consumer
- spsc::Iter
- spsc::IterMut
- spsc::Producer
- spsc::Queue
Enums
Traits
Typedefs
Crate heapless[−][src]
Expand description
static
friendly data structures that don’t require dynamic memory allocation
Crate heapless[−][src]
Expand description
static
friendly data structures that don’t require dynamic memory allocation
The core principle behind heapless
is that its data structures are backed by a static memory
allocation. For example, you can think of heapless::Vec
as an alternative version of
std::Vec
with fixed capacity and that can’t be re-allocated on the fly (e.g. via push
).
Enum heapless::pool::Init [−][src]
pub enum Init {}
Expand description
Initialized type state
+Enum heapless::pool::Init [−][src]
pub enum Init {}
Expand description
Initialized type state
Auto Trait Implementations
Blanket Implementations
Mutably borrows from an owned value. Read more
diff --git a/heapless/pool/enum.Uninit.html b/heapless/pool/enum.Uninit.html index 3c3480e1..9c09ce44 100644 --- a/heapless/pool/enum.Uninit.html +++ b/heapless/pool/enum.Uninit.html @@ -1,4 +1,4 @@ -Enum heapless::pool::Uninit [−][src]
pub enum Uninit {}
Expand description
Uninitialized type state
+Enum heapless::pool::Uninit [−][src]
pub enum Uninit {}
Expand description
Uninitialized type state
Auto Trait Implementations
Blanket Implementations
Mutably borrows from an owned value. Read more
diff --git a/heapless/pool/index.html b/heapless/pool/index.html index 302f79b8..fcd7e5cf 100644 --- a/heapless/pool/index.html +++ b/heapless/pool/index.html @@ -1,6 +1,6 @@ -Module heapless::pool [−][src]
Expand description
A heap-less, interrupt-safe, lock-free memory pool (*)
+Module heapless::pool [−][src]
Expand description
A heap-less, interrupt-safe, lock-free memory pool (*)
NOTE: This module is not available on targets that do not support CAS operations, e.g. ARMv6-M
-(*) Currently, the implementation is only lock-free and Sync
on ARMv7-{A,R,M} & ARMv8-M
+
(*) Currently, the implementation is only lock-free and Sync
on ARMv6, ARMv7-{A,R,M} & ARMv8-M
devices
Examples
The most common way of using this pool is as a global singleton; the singleton mode gives you diff --git a/heapless/pool/struct.Box.html b/heapless/pool/struct.Box.html index c4b68d43..405fe910 100644 --- a/heapless/pool/struct.Box.html +++ b/heapless/pool/struct.Box.html @@ -1,29 +1,29 @@ -
Struct heapless::pool::Box [−][src]
pub struct Box<T, STATE = Init> { /* fields omitted */ }
Expand description
A memory block
-Implementations
Trait Implementations
Feeds this value into the given Hasher
. Read more
Struct heapless::pool::Box [−][src]
pub struct Box<T, STATE = Init> { /* fields omitted */ }
Expand description
A memory block
+Implementations
Trait Implementations
This method returns an ordering between self
and other
values if one exists. Read more
This method tests less than (for self
and other
) and is used by the <
operator. Read more
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
This method tests greater than (for self
and other
) and is used by the >
operator. Read more
Auto Trait Implementations
Blanket Implementations
Auto Trait Implementations
Blanket Implementations
Mutably borrows from an owned value. Read more
Performs the conversion.
diff --git a/heapless/pool/struct.Pool.html b/heapless/pool/struct.Pool.html index 0a302f05..a38b43cf 100644 --- a/heapless/pool/struct.Pool.html +++ b/heapless/pool/struct.Pool.html @@ -1,18 +1,18 @@Struct heapless::pool::Pool [−][src]
pub struct Pool<T> { /* fields omitted */ }
Expand description
A lock-free memory pool
-Implementations
Implementations
Claims a memory block from the pool
Returns None
when the pool is observed as exhausted
NOTE: This method does not have bounded execution time because it contains a CAS loop
-Returns a memory block to the pool
NOTE: T
’s destructor (if any) will run on value
iff S = Init
NOTE: This method does not have bounded execution time because it contains a CAS loop
-Increases the capacity of the pool
This method might not fully utilize the given memory block due to alignment requirements.
This method returns the number of new blocks that can be allocated.
-pub fn grow_exact<A>(&self, memory: &'static mut MaybeUninit<A>) -> usize where
A: AsMut<[Node<T>]>,
pub fn grow_exact<A>(&self, memory: &'static mut MaybeUninit<A>) -> usize where
A: AsMut<[Node<T>]>,
Increases the capacity of the pool
+pub fn grow_exact<A>(&self, memory: &'static mut MaybeUninit<A>) -> usize where
A: AsMut<[Node<T>]>,
pub fn grow_exact<A>(&self, memory: &'static mut MaybeUninit<A>) -> usize where
A: AsMut<[Node<T>]>,
Increases the capacity of the pool
Unlike Pool.grow
this method fully utilizes the given
memory block
Trait Implementations
Auto Trait Implementations
Blanket Implementations
Trait Implementations
Auto Trait Implementations
Blanket Implementations
Mutably borrows from an owned value. Read more
Performs the conversion.
diff --git a/src/heapless/pool/mod.rs.html b/src/heapless/pool/mod.rs.html index 9be6d079..8a3560f3 100644 --- a/src/heapless/pool/mod.rs.html +++ b/src/heapless/pool/mod.rs.html @@ -680,12 +680,13 @@ 680 681 682 +683//! A heap-less, interrupt-safe, lock-free memory pool (\*) //! //! NOTE: This module is not available on targets that do *not* support CAS operations, e.g. ARMv6-M //! -//! (\*) Currently, the implementation is only lock-free *and* `Sync` on ARMv7-{A,R,M} & ARMv8-M +//! (\*) Currently, the implementation is only lock-free *and* `Sync` on ARMv6, ARMv7-{A,R,M} & ARMv8-M //! devices //! //! # Examples @@ -946,6 +947,7 @@ // NOTE(any(test)) makes testing easier (no need to enable Cargo features for testing) #[cfg(any( + armv6m, armv7a, armv7r, armv7m,