github.com/micro/go-micro/examples@v0.0.0-20210105173217-bf4ab679e18b/filter/version/version.go (about) 1 // Package version provides a way of calling a version of a service 2 package version 3 4 import ( 5 "github.com/micro/go-micro/v2/client" 6 "github.com/micro/go-micro/v2/client/selector" 7 "github.com/micro/go-micro/v2/registry" 8 ) 9 10 // Filter will filter the version of the service 11 func Filter(v string) client.CallOption { 12 filter := func(services []*registry.Service) []*registry.Service { 13 var filtered []*registry.Service 14 15 for _, service := range services { 16 if service.Version == v { 17 filtered = append(filtered, service) 18 } 19 } 20 21 return filtered 22 } 23 24 return client.WithSelectOption(selector.WithFilter(filter)) 25 }