// Copyright 2021 the Pinniped contributors. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 package roundtripper import ( "net/http" "k8s.io/apimachinery/pkg/util/net" ) var _ http.RoundTripper = Func(nil) type Func func(*http.Request) (*http.Response, error) func (f Func) RoundTrip(req *http.Request) (*http.Response, error) { return f(req) } var _ net.RoundTripperWrapper = &wrapper{} type wrapper struct { delegate http.RoundTripper f Func } func (w *wrapper) RoundTrip(req *http.Request) (*http.Response, error) { return w.f.RoundTrip(req) } func (w *wrapper) WrappedRoundTripper() http.RoundTripper { return w.delegate } func WrapFunc(delegate http.RoundTripper, f Func) net.RoundTripperWrapper { return &wrapper{delegate: delegate, f: f} }