mirror of
https://github.com/shtorm-7/sing-box-extended.git
synced 2026-05-14 00:51:12 +03:00
33 lines
598 B
Go
33 lines
598 B
Go
package common
|
|
|
|
import "reflect"
|
|
|
|
// Must panics if err is not nil.
|
|
func Must(err error) {
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
}
|
|
|
|
// Must2 panics if the second parameter is not nil, otherwise returns the first parameter.
|
|
func Must2(v interface{}, err error) interface{} {
|
|
Must(err)
|
|
return v
|
|
}
|
|
|
|
// Error2 returns the err from the 2nd parameter.
|
|
func Error2(v interface{}, err error) error {
|
|
return err
|
|
}
|
|
|
|
// CloseIfExists call obj.Close() if obj is not nil.
|
|
func CloseIfExists(obj any) error {
|
|
if obj != nil {
|
|
v := reflect.ValueOf(obj)
|
|
if !v.IsNil() {
|
|
return Close(obj)
|
|
}
|
|
}
|
|
return nil
|
|
}
|