@@ -67,7 +67,7 @@ type tagMapChain struct {
67
67
maps []TagMap
68
68
}
69
69
70
- // Key returns the key for this Tag .
70
+ // Valid returns true if the Tag is a valid one (it has a key) .
71
71
func (t Tag ) Valid () bool { return t .Key != nil }
72
72
73
73
// Format is used for debug printing of tags.
@@ -76,7 +76,42 @@ func (t Tag) Format(f fmt.State, r rune) {
76
76
fmt .Fprintf (f , `nil` )
77
77
return
78
78
}
79
- fmt .Fprintf (f , `%v="%v"` , t .Key .Name (), t .Value )
79
+ switch key := t .Key .(type ) {
80
+ case * IntKey :
81
+ fmt .Fprintf (f , "%s=%d" , key .Name (), key .From (t ))
82
+ case * Int8Key :
83
+ fmt .Fprintf (f , "%s=%d" , key .Name (), key .From (t ))
84
+ case * Int16Key :
85
+ fmt .Fprintf (f , "%s=%d" , key .Name (), key .From (t ))
86
+ case * Int32Key :
87
+ fmt .Fprintf (f , "%s=%d" , key .Name (), key .From (t ))
88
+ case * Int64Key :
89
+ fmt .Fprintf (f , "%s=%d" , key .Name (), key .From (t ))
90
+ case * UIntKey :
91
+ fmt .Fprintf (f , "%s=%d" , key .Name (), key .From (t ))
92
+ case * UInt8Key :
93
+ fmt .Fprintf (f , "%s=%d" , key .Name (), key .From (t ))
94
+ case * UInt16Key :
95
+ fmt .Fprintf (f , "%s=%d" , key .Name (), key .From (t ))
96
+ case * UInt32Key :
97
+ fmt .Fprintf (f , "%s=%d" , key .Name (), key .From (t ))
98
+ case * UInt64Key :
99
+ fmt .Fprintf (f , "%s=%d" , key .Name (), key .From (t ))
100
+ case * Float32Key :
101
+ fmt .Fprintf (f , "%s=%g" , key .Name (), key .From (t ))
102
+ case * Float64Key :
103
+ fmt .Fprintf (f , "%s=%g" , key .Name (), key .From (t ))
104
+ case * BooleanKey :
105
+ fmt .Fprintf (f , "%s=%t" , key .Name (), key .From (t ))
106
+ case * StringKey :
107
+ fmt .Fprintf (f , "%s=%q" , key .Name (), key .From (t ))
108
+ case * ErrorKey :
109
+ fmt .Fprintf (f , "%s=%q" , key .Name (), key .From (t ))
110
+ case * ValueKey :
111
+ fmt .Fprintf (f , "%s=%q" , key .Name (), key .From (t ))
112
+ default :
113
+ fmt .Fprintf (f , `%s="invalid type %T"` , key .Name (), key )
114
+ }
80
115
}
81
116
82
117
func (i * TagIterator ) Valid () bool {
0 commit comments