projectx/cmd/cmd.go
2025-03-21 11:05:42 +08:00

30 lines
496 B
Go

package cmd
import (
"log"
"reflect"
"runtime"
)
type server interface {
ListenAndServe() error
}
func mustInit(fn func() error) {
err := fn()
if err != nil {
ptr := reflect.ValueOf(fn).Pointer()
fi := runtime.FuncForPC(ptr)
log.Fatalf("%s failed: %v", fi.Name(), err)
}
}
func mustInitAny[T any](s T, fn func(s T) error) {
err := fn(s)
if err != nil {
ptr := reflect.ValueOf(fn).Pointer()
fi := runtime.FuncForPC(ptr)
log.Fatalf("%s(T) failed: %v", fi.Name(), err)
}
}