func ContextClient(ctx context.Context) (*http.Client, error) { if ctx != nil { if hc, ok := ctx.Value(HTTPClient).(*http.Client); ok { return hc, nil } } for _, fn := range contextClientFuncs { c, err := fn(ctx) if err != nil { return nil, err } if c != nil { return c, nil } } return http.DefaultClient, nil }