D equivalent to Rust or Scala's Optional and Result and best practice ?

James Blachly james.blachly at gmail.com
Tue Oct 19 00:01:47 UTC 2021


On 10/18/21 12:03 PM, dangbinghoo wrote:
> hi,
> 
> It seems that now we have `Optional` and `Result` packages in Dub, are 
> these enough or fully equal to Rust or Scala's error-handling and 
> pattern-matching?
> 
> if these are enough for real-code, any best practice advice?
> 
> thanks!
> 

Not quite the same as tagged algebraic union ("sum type" == Rust enum) 
are not (yet?) a language feature.

That being said, I recently integrated mir's Algebraic and Nullable into 
a project. Integration was pretty easy, and the code was clear and easy 
to understand. That being said, the terminology of "Some", "None", 
"Result" and "Err" in Rust are yet easier to understand.

http://mir-core.libmir.org/mir_algebraic.html

Finally, in addition to `mir.algebraic`, `sumtype`, `Optional`, and 
`Result` packages, I would add that Tchaloupka's `expected` package 
looks great:

https://code.dlang.org/packages/expected


More information about the Digitalmars-d-learn mailing list