aboutsummaryrefslogtreecommitdiff
path: root/embassy-sync/src
diff options
context:
space:
mode:
authorOliver Rockstedt <[email protected]>2024-10-07 17:35:11 +0200
committerOliver Rockstedt <[email protected]>2024-10-07 17:35:11 +0200
commit2704ac3d289650173b60e1a29d70e8903bea4cf1 (patch)
treea0e24a8a1517584555213f688afe39f05f9795fe /embassy-sync/src
parent07748131dde887d214c1d9373ec642907d547dcd (diff)
Add capacity, free_capacity, clear, len, is_empty and is_full functions to priority_channel::{Sender, Receiver}
Diffstat (limited to 'embassy-sync/src')
-rw-r--r--embassy-sync/src/priority_channel.rs84
1 files changed, 84 insertions, 0 deletions
diff --git a/embassy-sync/src/priority_channel.rs b/embassy-sync/src/priority_channel.rs
index 24c6c5a7f..1f4d8667c 100644
--- a/embassy-sync/src/priority_channel.rs
+++ b/embassy-sync/src/priority_channel.rs
@@ -71,6 +71,48 @@ where
71 pub fn poll_ready_to_send(&self, cx: &mut Context<'_>) -> Poll<()> { 71 pub fn poll_ready_to_send(&self, cx: &mut Context<'_>) -> Poll<()> {
72 self.channel.poll_ready_to_send(cx) 72 self.channel.poll_ready_to_send(cx)
73 } 73 }
74
75 /// Returns the maximum number of elements the channel can hold.
76 ///
77 /// See [`PriorityChannel::capacity()`]
78 pub const fn capacity(&self) -> usize {
79 self.channel.capacity()
80 }
81
82 /// Returns the free capacity of the channel.
83 ///
84 /// See [`PriorityChannel::free_capacity()`]
85 pub fn free_capacity(&self) -> usize {
86 self.channel.free_capacity()
87 }
88
89 /// Clears all elements in the channel.
90 ///
91 /// See [`PriorityChannel::clear()`]
92 pub fn clear(&self) {
93 self.channel.clear();
94 }
95
96 /// Returns the number of elements currently in the channel.
97 ///
98 /// See [`PriorityChannel::len()`]
99 pub fn len(&self) -> usize {
100 self.channel.len()
101 }
102
103 /// Returns whether the channel is empty.
104 ///
105 /// See [`PriorityChannel::is_empty()`]
106 pub fn is_empty(&self) -> bool {
107 self.channel.is_empty()
108 }
109
110 /// Returns whether the channel is full.
111 ///
112 /// See [`PriorityChannel::is_full()`]
113 pub fn is_full(&self) -> bool {
114 self.channel.is_full()
115 }
74} 116}
75 117
76impl<'ch, M, T, K, const N: usize> From<Sender<'ch, M, T, K, N>> for DynamicSender<'ch, T> 118impl<'ch, M, T, K, const N: usize> From<Sender<'ch, M, T, K, N>> for DynamicSender<'ch, T>
@@ -146,6 +188,48 @@ where
146 pub fn poll_receive(&self, cx: &mut Context<'_>) -> Poll<T> { 188 pub fn poll_receive(&self, cx: &mut Context<'_>) -> Poll<T> {
147 self.channel.poll_receive(cx) 189 self.channel.poll_receive(cx)
148 } 190 }
191
192 /// Returns the maximum number of elements the channel can hold.
193 ///
194 /// See [`PriorityChannel::capacity()`]
195 pub const fn capacity(&self) -> usize {
196 self.channel.capacity()
197 }
198
199 /// Returns the free capacity of the channel.
200 ///
201 /// See [`PriorityChannel::free_capacity()`]
202 pub fn free_capacity(&self) -> usize {
203 self.channel.free_capacity()
204 }
205
206 /// Clears all elements in the channel.
207 ///
208 /// See [`PriorityChannel::clear()`]
209 pub fn clear(&self) {
210 self.channel.clear();
211 }
212
213 /// Returns the number of elements currently in the channel.
214 ///
215 /// See [`PriorityChannel::len()`]
216 pub fn len(&self) -> usize {
217 self.channel.len()
218 }
219
220 /// Returns whether the channel is empty.
221 ///
222 /// See [`PriorityChannel::is_empty()`]
223 pub fn is_empty(&self) -> bool {
224 self.channel.is_empty()
225 }
226
227 /// Returns whether the channel is full.
228 ///
229 /// See [`PriorityChannel::is_full()`]
230 pub fn is_full(&self) -> bool {
231 self.channel.is_full()
232 }
149} 233}
150 234
151impl<'ch, M, T, K, const N: usize> From<Receiver<'ch, M, T, K, N>> for DynamicReceiver<'ch, T> 235impl<'ch, M, T, K, const N: usize> From<Receiver<'ch, M, T, K, N>> for DynamicReceiver<'ch, T>