Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
83 changes: 83 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion embedded-service/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ defmt = { workspace = true, optional = true }
document-features.workspace = true
embassy-sync.workspace = true
embassy-time.workspace = true
embassy-futures.workspace = true
embedded-batteries-async.workspace = true
embedded-cfu-protocol.workspace = true
embedded-hal-async.workspace = true
Expand Down Expand Up @@ -49,7 +50,6 @@ cortex-m.workspace = true

[dev-dependencies]
critical-section = { workspace = true, features = ["std"] }
embassy-futures.workspace = true
embassy-sync = { workspace = true, features = ["std"] }
embassy-time = { workspace = true, features = ["std"] }
embassy-time-driver = { workspace = true }
Expand Down
43 changes: 43 additions & 0 deletions embedded-service/src/event.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
//! Common traits for event senders and receivers

use embassy_sync::channel::{DynamicReceiver, DynamicSender};

/// Common event sender trait
pub trait Sender<E> {
/// Attempt to send an event
///
/// Return none if the event cannot currently be sent
fn try_send(&mut self, event: E) -> Option<()>;
/// Send an event
fn send(&mut self, event: E) -> impl Future<Output = ()>;
}

/// Common event receiver trait
pub trait Receiver<E> {
/// Attempt to receive an event
///
/// Return none if there are no pending events
fn try_next(&mut self) -> Option<E>;
/// Receiver an event
fn wait_next(&mut self) -> impl Future<Output = E>;
}

impl<E> Sender<E> for DynamicSender<'_, E> {
fn try_send(&mut self, event: E) -> Option<()> {
DynamicSender::try_send(self, event).ok()
}

fn send(&mut self, event: E) -> impl Future<Output = ()> {
DynamicSender::send(self, event)
}
}

impl<E> Receiver<E> for DynamicReceiver<'_, E> {
fn try_next(&mut self) -> Option<E> {
self.try_receive().ok()
}

fn wait_next(&mut self) -> impl Future<Output = E> {
self.receive()
}
}
1 change: 1 addition & 0 deletions embedded-service/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ pub mod buffer;
pub mod cfu;
pub mod comms;
pub mod ec_type;
pub mod event;
pub mod fmt;
pub mod hid;
pub mod init;
Expand Down
172 changes: 0 additions & 172 deletions embedded-service/src/power/policy/action/device.rs

This file was deleted.

Loading
Loading