lotus/postfix-config/map-provider/map-provider.go

24 lines
657 B
Go
Raw Normal View History

2023-08-21 00:26:22 +01:00
package map_provider
// MapProvider is an interface to allow looking up mapped values from variables,
// hash files or mysql queries.
type MapProvider interface {
Find(name string) (string, bool)
}
// SequenceMapProvider calls Find against each provider in a slice and outputs
// the true mapped value of the input. first mapped value found. If the input was
// not found then "", false is returned.
type SequenceMapProvider []MapProvider
func (s SequenceMapProvider) Find(name string) (string, bool) {
for _, i := range s {
if find, ok := i.Find(name); ok {
return find, true
}
}
return "", false
}
var _ MapProvider = SequenceMapProvider{}