golang.org/x/tools/gopls@v0.15.3/internal/vulncheck/govulncheck/jsonhandler.go (about) 1 // Copyright 2022 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 // Code generated by copying from golang.org/x/vuln@v1.0.1 (go run copier.go); DO NOT EDIT. 6 7 package govulncheck 8 9 import ( 10 "encoding/json" 11 12 "io" 13 14 "golang.org/x/tools/gopls/internal/vulncheck/osv" 15 ) 16 17 type jsonHandler struct { 18 enc *json.Encoder 19 } 20 21 // NewJSONHandler returns a handler that writes govulncheck output as json. 22 func NewJSONHandler(w io.Writer) Handler { 23 enc := json.NewEncoder(w) 24 enc.SetIndent("", " ") 25 return &jsonHandler{enc: enc} 26 } 27 28 // Config writes config block in JSON to the underlying writer. 29 func (h *jsonHandler) Config(config *Config) error { 30 return h.enc.Encode(Message{Config: config}) 31 } 32 33 // Progress writes a progress message in JSON to the underlying writer. 34 func (h *jsonHandler) Progress(progress *Progress) error { 35 return h.enc.Encode(Message{Progress: progress}) 36 } 37 38 // OSV writes an osv entry in JSON to the underlying writer. 39 func (h *jsonHandler) OSV(entry *osv.Entry) error { 40 return h.enc.Encode(Message{OSV: entry}) 41 } 42 43 // Finding writes a finding in JSON to the underlying writer. 44 func (h *jsonHandler) Finding(finding *Finding) error { 45 return h.enc.Encode(Message{Finding: finding}) 46 }