ipld-eth-server/vendor/gopkg.in/DataDog/dd-trace-go.v1/contrib/net/http/option.go
2018-09-11 16:30:29 -05:00

57 lines
1.4 KiB
Go

package http
import (
"net/http"
"gopkg.in/DataDog/dd-trace-go.v1/ddtrace"
)
type muxConfig struct{ serviceName string }
// MuxOption represents an option that can be passed to NewServeMux.
type MuxOption func(*muxConfig)
func defaults(cfg *muxConfig) {
cfg.serviceName = "http.router"
}
// WithServiceName sets the given service name for the returned ServeMux.
func WithServiceName(name string) MuxOption {
return func(cfg *muxConfig) {
cfg.serviceName = name
}
}
// A RoundTripperBeforeFunc can be used to modify a span before an http
// RoundTrip is made.
type RoundTripperBeforeFunc func(*http.Request, ddtrace.Span)
// A RoundTripperAfterFunc can be used to modify a span after an http
// RoundTrip is made. It is possible for the http Response to be nil.
type RoundTripperAfterFunc func(*http.Response, ddtrace.Span)
type roundTripperConfig struct {
before RoundTripperBeforeFunc
after RoundTripperAfterFunc
}
// A RoundTripperOption represents an option that can be passed to
// WrapRoundTripper.
type RoundTripperOption func(*roundTripperConfig)
// WithBefore adds a RoundTripperBeforeFunc to the RoundTripper
// config.
func WithBefore(f RoundTripperBeforeFunc) RoundTripperOption {
return func(cfg *roundTripperConfig) {
cfg.before = f
}
}
// WithAfter adds a RoundTripperAfterFunc to the RoundTripper
// config.
func WithAfter(f RoundTripperAfterFunc) RoundTripperOption {
return func(cfg *roundTripperConfig) {
cfg.after = f
}
}