package common import ( "context" "net/netip" "github.com/qdm12/gluetun-servers/pkg/models" pubipmodels "github.com/qdm12/gluetun-servers/pkg/publicip/models" "github.com/qdm12/gluetun-servers/pkg/updaters/resolver" ) type Fetcher interface { FetchServers(ctx context.Context, minServers int) (servers []models.Server, err error) Version() uint16 Name() string } type ParallelResolver interface { Resolve(ctx context.Context, settings resolver.ParallelSettings) ( hostToIPs map[string][]netip.Addr, warnings []string, err error) } type Unzipper interface { FetchAndExtract(ctx context.Context, url string) ( contents map[string][]byte, err error) } type Warner interface { Warn(s string) } type IPFetcher interface { String() string CanFetchAnyIP() bool FetchInfo(ctx context.Context, ip netip.Addr) (result pubipmodels.PublicIP, err error) }