YTSFlix_Go/vendor/github.com/anacrolix/missinggo/resource/provider.go

22 lines
687 B
Go
Raw Normal View History

2018-11-04 14:58:15 +00:00
package resource
type Provider interface {
NewInstance(string) (Instance, error)
}
// TranslatedProvider manipulates resource locations, so as to allow
// sandboxing, or relative paths for example.
type TranslatedProvider struct {
// The underlying Provider.
BaseProvider Provider
// Some location used in calculating final locations.
BaseLocation string
// Function that takes BaseLocation, and the caller location and returns
// the location to be used with the BaseProvider.
JoinLocations func(base, rel string) string
}
func (me *TranslatedProvider) NewInstance(rel string) (Instance, error) {
return me.BaseProvider.NewInstance(me.JoinLocations(me.BaseLocation, rel))
}