Open
Description
Some sketching:
type Result[T any] struct {
item *T
err error
}
func Ok[T any](value T) Result[T] {
return Result[T]{
item: &value,
err: nil,
}
}
func Err[T any](err error) Result[T] {
return Result[T]{
item: nil,
err: err,
}
}
func getTemp(succeed bool) Result[string] {
if succeed {
return Ok("warm")
} else {
return Err[string](errors.New("could not succeed"))
}
}
func main() {
temp := getTemp(true)
fmt.Printf("temp=%s\n", *temp.item)
}