package module

type ModuleInfo struct {
	ID  string
	New func() Module
}

type Module interface {
	GatModule() ModuleInfo
}

var globalModuleMap = newModuleMap()

func Register(name string, module Module) {
	err := globalModuleMap.Register(name, module)
	if err != nil {
		panic(err)
	}
}