mirror of
https://github.com/go-micro/go-micro.git
synced 2024-12-18 08:26:38 +02:00
44 lines
602 B
Go
44 lines
602 B
Go
// Package profile is for profilers
|
|
package profile
|
|
|
|
type Profile interface {
|
|
// Start the profiler
|
|
Start() error
|
|
// Stop the profiler
|
|
Stop() error
|
|
// Name of the profiler
|
|
String() string
|
|
}
|
|
|
|
var (
|
|
DefaultProfile Profile = new(noop)
|
|
)
|
|
|
|
type noop struct{}
|
|
|
|
func (p *noop) Start() error {
|
|
return nil
|
|
}
|
|
|
|
func (p *noop) Stop() error {
|
|
return nil
|
|
}
|
|
|
|
func (p *noop) String() string {
|
|
return "noop"
|
|
}
|
|
|
|
type Options struct {
|
|
// Name to use for the profile
|
|
Name string
|
|
}
|
|
|
|
type Option func(o *Options)
|
|
|
|
// Name of the profile.
|
|
func Name(n string) Option {
|
|
return func(o *Options) {
|
|
o.Name = n
|
|
}
|
|
}
|