You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
20 lines
397 B
20 lines
397 B
// internal/core/discovery.go |
|
package core |
|
|
|
import ( |
|
"reflect" |
|
) |
|
|
|
var moduleTypes []reflect.Type |
|
|
|
func RegisterModuleType(module Module) { |
|
moduleTypes = append(moduleTypes, reflect.TypeOf(module)) |
|
} |
|
|
|
func DiscoverModules(manager *ModuleManager) error { |
|
for _, typ := range moduleTypes { |
|
module := reflect.New(typ.Elem()).Interface().(Module) |
|
manager.RegisterModule(module) |
|
} |
|
return nil |
|
}
|
|
|