• YIj54yALOJxEsY20eU@lemm.eeOP
      link
      fedilink
      arrow-up
      1
      ·
      edit-2
      9 months ago

      Thank you very much, I’m definitely going to take this for a spin! Can I ask if you or someone you know uses this? I’m curious what the experience is like and if theres any downfalls.

      • anti-idpol action
        link
        fedilink
        arrow-up
        2
        ·
        edit-2
        9 months ago

        A simple example:

        
        func GetConfig(path string) mo.Result[*Config] {
        return mo.Try(func (*Config, error) {
        // logic to get the config
        })
        }
        
        conf := GetConfig.OrElse(&DefaultConfig)
        

        While it might not make much sense for a function you use just once, it can get actually pretty useful to simplify error handling like this for something you use more often.

      • anti-idpol action
        link
        fedilink
        arrow-up
        2
        ·
        edit-2
        9 months ago

        mostly the Result type. MustGet where you’d except a panic OrElse to pass a fallback value (can be a function with return value of the same type, as the inner function, but without an error). Useful in e.g. more complex constructors where some fields might not be readily available. Either can for instance be useful to have arbitrary type unions in structs. I haven’t used Option that much but seems similar to Rust’s.