1
0
mirror of https://github.com/golang/go synced 2024-11-18 12:54:44 -07:00

internal/lsp: make event directly implement TagMap

Makes Event implement TagMap directly, instead of
having to build an entirely new object.

Change-Id: I0c1e8638de3dc3347f60fd93af3df6b7f8387751
Reviewed-on: https://go-review.googlesource.com/c/tools/+/227300
Run-TryBot: Ian Cottrell <iancottrell@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Emmanuel Odeke <emm.odeke@gmail.com>
This commit is contained in:
Ian Cottrell 2020-04-03 22:59:59 -04:00
parent ff0df58207
commit 903869a827
6 changed files with 10 additions and 15 deletions

View File

@ -158,8 +158,7 @@ func (r *rpcs) getRPCSpan(ctx context.Context, ev event.Event) (*export.Span, *r
} }
// use the span start event look up the correct stats block // use the span start event look up the correct stats block
// we do this because it prevents us matching a sub span // we do this because it prevents us matching a sub span
startMap := span.Start().Map() return span, r.getRPCStats(span.Start())
return span, r.getRPCStats(startMap)
} }
func (r *rpcs) getRPCStats(tagMap event.TagMap) *rpcStats { func (r *rpcs) getRPCStats(tagMap event.TagMap) *rpcStats {
@ -201,7 +200,7 @@ func (h *rpcTimeHistogram) Mean() timeUnits { return h.Sum / timeUnits(h.Count)
func getStatusCode(span *export.Span) string { func getStatusCode(span *export.Span) string {
for _, ev := range span.Events() { for _, ev := range span.Events() {
if status := tag.StatusCode.Get(ev.Map()); status != "" { if status := tag.StatusCode.Get(ev); status != "" {
return status return status
} }
} }

View File

@ -547,7 +547,7 @@ func makeGlobalExporter(stderr io.Writer) event.Exporter {
if ev.IsLog() { if ev.IsLog() {
// Don't log context cancellation errors. // Don't log context cancellation errors.
if err := event.Err.Get(ev.Map()); xerrors.Is(err, context.Canceled) { if err := event.Err.Get(ev); xerrors.Is(err, context.Canceled) {
return ctx return ctx
} }
// Make sure any log messages without an instance go to stderr. // Make sure any log messages without an instance go to stderr.

View File

@ -54,7 +54,7 @@ func (ev Event) IsDetach() bool { return ev.typ == DetachType }
func (ev Event) IsRecord() bool { return ev.typ == RecordType } func (ev Event) IsRecord() bool { return ev.typ == RecordType }
func (ev Event) Format(f fmt.State, r rune) { func (ev Event) Format(f fmt.State, r rune) {
tagMap := ev.Map() tagMap := TagMap(ev)
if !ev.At.IsZero() { if !ev.At.IsZero() {
fmt.Fprint(f, ev.At.Format("2006/01/02 15:04:05 ")) fmt.Fprint(f, ev.At.Format("2006/01/02 15:04:05 "))
} }
@ -85,17 +85,13 @@ func (ev Event) Tags() TagIterator {
NewTagIterator(ev.dynamic...)) NewTagIterator(ev.dynamic...))
} }
func (ev Event) Map() TagMap { func (ev Event) Find(key interface{}) Tag {
return &eventTagMap{event: ev} for _, tag := range ev.static {
}
func (m *eventTagMap) Find(key interface{}) Tag {
for _, tag := range m.event.static {
if tag.Key == key { if tag.Key == key {
return tag return tag
} }
} }
for _, tag := range m.event.dynamic { for _, tag := range ev.dynamic {
if tag.Key == key { if tag.Key == key {
return tag return tag
} }

View File

@ -40,7 +40,7 @@ func deliver(ctx context.Context, exporter Exporter, ev Event) context.Context {
// add the current time to the event // add the current time to the event
ev.At = time.Now() ev.At = time.Now()
// hand the event off to the current exporter // hand the event off to the current exporter
return exporter(ctx, ev, ev.Map()) return exporter(ctx, ev, ev)
} }
// dispatch is called to deliver an event to the global exporter if set. // dispatch is called to deliver an event to the global exporter if set.

View File

@ -299,7 +299,7 @@ func convertAnnotation(ev event.Event) *wire.Annotation {
if !tags.Valid() { if !tags.Valid() {
return nil return nil
} }
tagMap := ev.Map() tagMap := event.TagMap(ev)
description := event.Msg.Get(tagMap) description := event.Msg.Get(tagMap)
tags = event.Filter(tags, event.Msg) tags = event.Filter(tags, event.Msg)
if description == "" { if description == "" {

View File

@ -20,7 +20,7 @@ func Labels(output event.Exporter) event.Exporter {
stored, _ := ctx.Value(labelContextKey).(event.TagMap) stored, _ := ctx.Value(labelContextKey).(event.TagMap)
if ev.IsLabel() || ev.IsStartSpan() { if ev.IsLabel() || ev.IsStartSpan() {
// update the tag source stored in the context // update the tag source stored in the context
fromEvent := ev.Map() fromEvent := event.TagMap(ev)
if stored == nil { if stored == nil {
stored = fromEvent stored = fromEvent
} else { } else {