Add response time badge and chart
This commit is contained in:
42
vendor/github.com/wcharczuk/go-chart/v2/image_writer.go
generated
vendored
Normal file
42
vendor/github.com/wcharczuk/go-chart/v2/image_writer.go
generated
vendored
Normal file
@ -0,0 +1,42 @@
|
||||
package chart
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"errors"
|
||||
"image"
|
||||
"image/png"
|
||||
)
|
||||
|
||||
// RGBACollector is a render target for a chart.
|
||||
type RGBACollector interface {
|
||||
SetRGBA(i *image.RGBA)
|
||||
}
|
||||
|
||||
// ImageWriter is a special type of io.Writer that produces a final image.
|
||||
type ImageWriter struct {
|
||||
rgba *image.RGBA
|
||||
contents *bytes.Buffer
|
||||
}
|
||||
|
||||
func (ir *ImageWriter) Write(buffer []byte) (int, error) {
|
||||
if ir.contents == nil {
|
||||
ir.contents = bytes.NewBuffer([]byte{})
|
||||
}
|
||||
return ir.contents.Write(buffer)
|
||||
}
|
||||
|
||||
// SetRGBA sets a raw version of the image.
|
||||
func (ir *ImageWriter) SetRGBA(i *image.RGBA) {
|
||||
ir.rgba = i
|
||||
}
|
||||
|
||||
// Image returns an *image.Image for the result.
|
||||
func (ir *ImageWriter) Image() (image.Image, error) {
|
||||
if ir.rgba != nil {
|
||||
return ir.rgba, nil
|
||||
}
|
||||
if ir.contents != nil && ir.contents.Len() > 0 {
|
||||
return png.Decode(ir.contents)
|
||||
}
|
||||
return nil, errors.New("no valid sources for image data, cannot continue")
|
||||
}
|
Reference in New Issue
Block a user