-
updatehub
A generic and safe Firmware Over-The-Air (FOTA) agent for Embedded and Industrial Linux-based devices
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
Since this pattern was starting to repeat across projects, I tried moving it to a create and also make it more flexible for anyone who wants to use it as well. The problem with the crate is that since whomever uses it doesn't own the trait and don't own std or other lib's types, Rust wouldn't allow the crate's user to implement it over these types that one might want to log. I get why this is a problem and I had to workaround it.
Here's an example of the library been used where the error will be later handled, but logging if the IO error was in the source file or the target file is important for troubleshooting. And here is how the library is imported into that same project.