Releases: klingtnet/rosc
Bugfix release 🐞
Thanks to @maxnoel for fixing tests on Windows. OscTimeError
is also now a std::error::Error
which makes it a bit more handy to use.
Improved ergonomics
With this release development ergonomics improved slightly:
rosc
now returns plainResult
instead of thenom
specificIResult
(#33)- there's a new
OscAddress
type that allows validating OSC addresses only once. This change is also a performance improvement. (#32)
Special thanks to @DrLuke for implementing both changes and thus closing #29 and #30.
Address matching via `nom`
We do not depend on the regex
crate anymore since the address matching is now done entirely via nom
. Thanks to @DrLuke for implementing this! 🎉
Add address module
This release adds a new address
module that helps matching message addresses against OSC method address patterns. With other words, the Matcher
can be used to dispatch incoming messages to the appropriate handler.
Fix Osc-/SystemTime conversions for 32-bit systems
This limits SystemTime
to OscTime
conversions, and vice versa, to time ranges since the unix epoch which prevents arithmetic overflows on 32-bit systems. Times before the unix epoch can still be represented using OscTime
.
Implement error:Error for OscError
OscError
is now implementing the std::error::Error
trait. This increases code ergonomics because it allows OscError
to be used with the ?
operator and with anyhow:Error
.
Thanks to @ooesili for implementing that!
Conversion between OscTime and SystemTime
This release adds conversion functionality between SystemTime
and OscTime
.
This comes with a minor breaking change but OscTime
implements From/Into
traits for (u32, u32)
(the previous type alias) and so you can just use .into()
to convert between (u32, u32)
and OscTime
. More details can be found in the docks docs.
Thanks to @ooesili for providing the implementation!