package ngo // Must if error is not empty, will panic func Must(err error) { if err != nil { panic(err) } } // MustV if error is not empty, will panic. otherwise return the value. func MustV[T any](v T, err error) T { if err != nil { panic(err) } return v } // ErrOnFail return input error on cond is false, otherwise return nil func ErrOnFail(cond bool, err error) error { return OrError(cond, err) } // OrError return input error on cond is false, otherwise return nil func OrError(cond bool, err error) error { if !cond { return err } return nil } // FirstOr get first elem or elseVal func FirstOr[T any](sl []T, elseVal T) T { if len(sl) > 0 { return sl[0] } return elseVal } // OrValue get func OrValue[T any](cond bool, okVal, elVal T) T { if cond { return okVal } return elVal } // OrReturn call okFunc() on condition is true, else call elseFn() func OrReturn[T any](cond bool, okFn, elseFn func() T) T { if cond { return okFn() } return elseFn() } // ErrFunc type type ErrFunc func() error // CallOn call func on condition is true func CallOn(cond bool, fn ErrFunc) error { if cond { return fn() } return nil } // CallOrElse call okFunc() on condition is true, else call elseFn() func CallOrElse(cond bool, okFn, elseFn ErrFunc) error { if cond { return okFn() } return elseFn() }