Quick start with Option and Pipe3
masterYou can use mo.Option[T] to represent optional values. The option sub-package provides functional composition tools like Pipe3 to chain transformations such as Map and FlatMap.
Supported data types in mo include:
Option[T]Result[T]Either[A, B]EitherX[T1, ..., TX](where X is 3 to 5)Future[T]IO[T]IOEither[T]Task[T]TaskEither[T]State[S, A]
import (
"github.com/samber/mo"
"github.com/samber/mo/option"
)
out := option.Pipe3(
mo.Some(21),
option.Map(func(v int) int { return v * 2 }),
option.FlatMap(func(v int) mo.Option[int] { return mo.None[int]() }),
option.Map(func(v int) int { return v + 21 }),
)
// out == None[int]