uraimo / SwiftyGPIO

A Swift library for hardware projects on Linux/ARM boards with support for GPIOs/SPI/I2C/PWM/UART/1Wire.
MIT License
1.35k stars 135 forks source link

Error Propagation #111

Open levigroker opened 4 years ago

levigroker commented 4 years ago

Board Type

RaspberryPi3, but not relevant.

Operating System

Raspbian, but not relevant.

Swift Version

Pre-built 5.1

Description

Rather than call abort() when an operation is unsuccessful, we should throw instead, so fault tolerance can be built into the library and callers can handle the error as they like.

The API could remain the same to facilitate backward compatibility, but variants of the exposed API would be added which contain the throws in their declaration. The existing API could simply call the new API in a try/catch and call abort() in the catch to keep existing functionality consistent.

uraimo commented 4 years ago

Hi! Yes, that's how it is/will be implemented in the next release (https://github.com/uraimo/SwiftyGPIO/blob/next_release/docs/1to2.md). I've never merged because I planned to add a few more things but never had the time to think about them and I don't expect to have it anytime soon. That being said, at this point I will align the next_release branch with the latest modification on the main branch and just release it.

levigroker commented 4 years ago

Awesome. I'll look forward to the new release. Thank you!

levigroker commented 3 years ago

Hey @uraimo , I don't mean to be pushy, I'm just eager. Any news on when this might be released? Many thanks.