Skip to content

Asyncify flush#13

Open
jacobrosenthal wants to merge 7 commits into
rust-embedded-community:masterfrom
jacobrosenthal:async
Open

Asyncify flush#13
jacobrosenthal wants to merge 7 commits into
rust-embedded-community:masterfrom
jacobrosenthal:async

Conversation

@jacobrosenthal

Copy link
Copy Markdown

Draft for discussion. Could support multiple traits, this could be the 'embassy' feature instead of async...

Comment thread src/display.rs Outdated
@jamwaffles

Copy link
Copy Markdown
Collaborator

this could be the 'embassy' feature instead of async

I think this is a good idea - Embassy might go away one day. Maybe call it async-embassy? That way we can have async-whatever for other executors if we need it.

@jacobrosenthal

Copy link
Copy Markdown
Author

Fixed the trait, but pr is still a bit of a mess

  • had to duplicate basically all of the send fn to make a send_async fn. I cant think of a good way to have the enum discriminants pulled into a From impl or something
  • I dont have a good dev board for the stm32f1 with an ssd1331 to attempt the embassy so its nrf52840 and optionally using multiple hals isnt a good solution.

But check it out does seem to work

@richard-uk1

Copy link
Copy Markdown

It would be awesome if eventually there were a rutime-agnostic set of async traits. We're not ready yet (need more experimentation) but it would be cool if just the traits from embassy became managed by embedded-wg or similar so that if someone wants to use a different runtime they can.

@jacobrosenthal

Copy link
Copy Markdown
Author

Id track here
rust-embedded/embedded-hal#285

and after that we need Prs to help the hals asyncify

@jacobrosenthal

Copy link
Copy Markdown
Author

Well this is one way to do multiple target examples

@jacobrosenthal
jacobrosenthal marked this pull request as ready for review November 22, 2021 16:31
@quentinmit

quentinmit commented Jul 10, 2022

Copy link
Copy Markdown

I just looked into trying to use this, but it seems like sync operations are still used for non-flush operations?

Unfortunately I think that means that it can't be used with a proxy object from shared-bus, since it only provides async OR sync traits, but not both at the same time.

On the bright side, the async traits are now closer to standardized with the embedded-hal-async crate.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants