<danielb[m]>
I think it's not fundamentally impossible to implement blocking SpiDevice trait for the async embassy-embedded-hal SpiDevice struct 🤔
<danielb[m]>
FrreJacques[m]: it's possible for a struct to implement a function in some way, then implement a trait that has a function named the same way and have a different signature
<danielb[m]>
you'll find a separate `impl Trait for Struct` block that also has `fn set_high(&mut self) -> Result<(), Self::Error>`
<FrreJacques[m]>
I see. Because I use the ehal trait and therefor handling a result, the compiler knows that this can't be resolved to the function with the non result.
<FrreJacques[m]>
So the ErrorType of ehal is generic. Which means implementers could use all sorts of different errors. Which means I am required to keep that generic too.
<FrreJacques[m]>
Can I expect that if I require a type to impl ehal InputPin + OutputPin that the associated errortypes are identical. Don't see already whether this could complicate things further.
hmw has quit [Quit: Bye.]
hmw has joined #rust-embedded
duderonomy has quit [Read error: Connection reset by peer]
<LiamKinne[m]>
I wrote a short blog post on how I'm using TLV-C to encode product data in the things I make and sell. Interested to hear if anyone else is using something like this for OTP data.
jduck[m] has joined #rust-embedded
<jduck[m]>
I think it's pretty common to store such things in OTP. I'm not familiar with TLV-C
<jduck[m]>
It looks neat but i have some concerns about how such flexibility can undermine security. Of course that assumes someone depends on it for security to begin with.
ouilemur has left #rust-embedded [WeeChat 4.5.1]
bogdan[m] has quit [Quit: Idle timeout reached: 172800s]
<thejpster[m]>
that's a PAC for a system that QEMU can emulate (and also Arm has a Fixed Virtual Platform emulator for it) - and it's published by Arm
<JamesMunns[m]>
Maybe we should ping mousius to come hang out and say hi here :D
<thejpster[m]>
Thanks ithinuel ! just what I needed for this example I'm writing
ithinuel[m] has joined #rust-embedded
<ithinuel[m]>
thejpster[m]: guilty
<thejpster[m]>
(Today I'm writing "How to write your own fully buffered interrupt-driven global-state UART driver")
<ithinuel[m]>
ithinuel[m]: It’s not been updated ever since I generated it back in the days, let me know if there’s need to get it updated with latest svd2rust)
diondokter[m] has quit [Quit: Idle timeout reached: 172800s]
jason-kairos[m] has quit [Quit: Idle timeout reached: 172800s]
<almindor[m]>
<danielb[m]> "I think it's not fundamentally..." <- Yes I suspect it's an exclusive and/or in the end. I'm now looking into possibility to use something like `maybe-async` instead to avoid absolute code duplication
<almindor[m]>
s/and/or/choice/
<almindor[m]>
I really think a "called decides what's async" approach would possibly work for Rust. If you think about it, that's what it always boils down to in the end. It'd be interesting if it was "automatic language feature". Essentially a separate "asyncmorphisation".
<almindor[m]>
yeah, I'm sure I'm not the only or even early person to think up something like this :D
<almindor[m]>
I've got a feeling there's also a lot of hidden "gems" in this approach due to the horrors of Pin at al. and other "hacks" that made it because it was too late for changes to move, drop and a bunch of others
Dr_Who has joined #rust-embedded
GrantM11235[m] has quit [Quit: Idle timeout reached: 172800s]