go-scopes/config/config.go

32 lines
503 B
Go

package config
type Config interface {
Name() string
Children() []Config
AddChild(Config)
}
type BaseConfig struct {
name string
children []Config
}
func (cfg *BaseConfig) Name() string {
return cfg.name
}
func (cfg *BaseConfig) Children() []Config {
return cfg.children
}
func (cfg *BaseConfig) AddChild(child Config) {
cfg.children = append(cfg.children, child)
}
func MakeConfig(name string) Config {
return &BaseConfig{name: name}
}
func Setup(cfg Config) Config {
return cfg
}