GPIO pins should have inherent infallible methods #748
Open
Description
If you are writing a basic fn main() -> !
in Rust, there are two pitfalls using the rp-hal as it is:
- You don't get any useful methods on your GPIO pins unless you import the right embedded-hal traits
- The embedded-hal traits insist the methods (like
fn set_high()
) return aResult<(), Self::Error>
even though on RP2040 setting a pin high cannot fail. We settype Error = core::convert:Infallible
but this still has to be handled with.unwrap()
orlet _ =
, otherwise you get a warning.
We should implement inherent methods on the type called set_high()
and set_low()
which return nothing. We can defer to these methods in the implementation of the embedded-hal methods, and then only people using the traits (i.e. driver authors) have to worry about the return type.
Metadata
Assignees
Labels
No labels