distribution/vendor/github.com/anacrolix/generics/result.go

32 lines
424 B
Go

package generics
type Result[T any] struct {
Ok T
Err error
}
func ResultFromTuple[T any](t T, err error) Result[T] {
return Result[T]{
Ok: t,
Err: err,
}
}
func (r Result[T]) AsTuple() (T, error) {
return r.Ok, r.Err
}
func (r Result[T]) Unwrap() T {
if r.Err != nil {
panic(r.Err)
}
return r.Ok
}
func (r Result[T]) ToOption() Option[T] {
return Option[T]{
Ok: r.Err == nil,
Value: r.Ok,
}
}