-
result4j
Provides Result-type similar to Result-type in Rust that allows to return either successfull result or otherwise some kind of error and routines for interoperability of normal code that uses exception and functional code that uses Result-type
-
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.
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
Author here. I have no idea what you could possibly mean with this comment. The coroutineBinding implementation correctly uses the coroutines API for parallel decomposition of Result bindings, exactly how the Kotlin Corotines guide tells you to (backed by a [Mutex](https://github.com/michaelbull/kotlin-result/blob/master/kot...)). The coroutineBinding isn't even the main selling point of the library, you can use it without using this feature entirely.
Please could you elaborate on what "looking thread safe" means to you? The only portion of the library that supports concurrency *is* thread safe - the unit tests prove it and the use of concurrency primitives such as Kotlin's Mutex are indicative of this. I truly have no idea how you've judged the entirely of the lbirary on whether it's "thread safe" when there is a single function that's related to concurrency and it is very clearly using concurrency primitives.
- Let exceptions propagate, catching them at as high a level as possible.
Which one to go with depends on the type of program I'm writing. If it's a GUI tool, I go with the first approach, because I want to display errors to the user. If it's a CLI tool or backend service, I go with the second option, because I want to short-circuit the program as soon as possible to avoid potential logic errors.
[1]: https://github.com/sviperll/result4j
using RunCatching is inadvisable, it catches too much and can break lots of things in hard to detect ways
https://github.com/sksamuel/tabby/blob/0fa37638712efd6b059f2...
`Either foo()` and `Foo foo() throws MyError` and are pretty much isomorphic.
https://github.com/Kotlin/KEEP/blob/master/proposals/stdlib/...