add lint action (#19)
All checks were successful
Go Action / goaction (push) Successful in 19m15s
All checks were successful
Go Action / goaction (push) Successful in 19m15s
Reviewed-on: #19
This commit was merged in pull request #19.
This commit is contained in:
118
field/encoder.go
118
field/encoder.go
@@ -1,4 +1,3 @@
|
||||
//nolint:gomnd
|
||||
package field
|
||||
|
||||
import (
|
||||
@@ -104,46 +103,6 @@ func (b BaseEncoder) AppendDelimiter(dst []byte, deli byte) []byte {
|
||||
return append(dst, deli)
|
||||
}
|
||||
|
||||
//nolint:gocyclo,cyclop
|
||||
func (b BaseEncoder) appendValue(dst []byte, val Value, prefix string, deli byte) []byte {
|
||||
switch val.Kind {
|
||||
case KindGroup:
|
||||
return b.appendGroup(dst, val.AsGroup(), prefix)
|
||||
case KindClosure:
|
||||
return b.appendValue(dst, AnyValue(val.Resolve()), prefix, deli)
|
||||
case KindArray:
|
||||
return b.AppendArray(b.AppendDelimiter(dst, deli), val.AsArray())
|
||||
case KindNil:
|
||||
return b.AppendNull(b.AppendDelimiter(dst, deli))
|
||||
case KindBool:
|
||||
return b.AppendBool(b.AppendDelimiter(dst, deli), val.AsBool())
|
||||
case KindBinary:
|
||||
return b.AppendBytes(b.AppendDelimiter(dst, deli), val.AsBinary())
|
||||
case KindComplex128:
|
||||
return b.AppendComplex(b.AppendDelimiter(dst, deli), val.AsComplex128())
|
||||
case KindInt64:
|
||||
return b.AppendInt(b.AppendDelimiter(dst, deli), val.AsInt64())
|
||||
case KindFloat32:
|
||||
return b.AppendFloat(b.AppendDelimiter(dst, deli), float64(val.AsFloat32()), 32)
|
||||
case KindFloat64:
|
||||
return b.AppendFloat(b.AppendDelimiter(dst, deli), val.AsFloat64(), 64)
|
||||
case KindUint64:
|
||||
return b.AppendUint(b.AppendDelimiter(dst, deli), val.AsUint64())
|
||||
case KindError:
|
||||
return b.AppendString(b.AppendDelimiter(dst, deli), val.AsError().Error())
|
||||
case KindString:
|
||||
return b.AppendString(b.AppendDelimiter(dst, deli), val.AsString())
|
||||
case KindDuration:
|
||||
return b.AppendDuration(b.AppendDelimiter(dst, deli), val.AsDuration())
|
||||
case KindTime:
|
||||
return b.AppendTime(b.AppendDelimiter(dst, deli), val.AsTime())
|
||||
case KindAny:
|
||||
return b.DefaultValue(b.AppendDelimiter(dst, deli), b, val)
|
||||
}
|
||||
|
||||
return b.DefaultValue(b.AppendDelimiter(dst, deli), b, val)
|
||||
}
|
||||
|
||||
func (b BaseEncoder) AppendDuration(dst []byte, d time.Duration) []byte {
|
||||
return b.AppendString(dst, d.String())
|
||||
}
|
||||
@@ -204,12 +163,6 @@ func (b BaseEncoder) AppendField(dst []byte, field Field) []byte {
|
||||
return b.appendField(dst, field, prefix, b.delimeter)
|
||||
}
|
||||
|
||||
func (b BaseEncoder) appendField(dst []byte, field Field, prefix string, deli byte) []byte {
|
||||
dst = b.AppendKey(dst, field.Key, prefix)
|
||||
|
||||
return b.appendValue(dst, field.Value, field.Key+".", deli)
|
||||
}
|
||||
|
||||
func (b BaseEncoder) AppendKey(dst []byte, key string, prefix string) []byte {
|
||||
if prefix != "" {
|
||||
dst = append(dst, prefix...)
|
||||
@@ -218,6 +171,7 @@ func (b BaseEncoder) AppendKey(dst []byte, key string, prefix string) []byte {
|
||||
return b.AppendString(dst, key)
|
||||
}
|
||||
|
||||
//nolint:mnd
|
||||
func (b BaseEncoder) AppendComplex(dst []byte, c complex128) []byte {
|
||||
cmplx := strconv.FormatComplex(c, 'g', -1, 128)
|
||||
|
||||
@@ -228,6 +182,7 @@ func (b BaseEncoder) AppendFloat(dst []byte, f float64, bitSize int) []byte {
|
||||
return strconv.AppendFloat(dst, f, 'g', -1, bitSize)
|
||||
}
|
||||
|
||||
//nolint:mnd
|
||||
func (b BaseEncoder) AppendUint(dst []byte, u uint64) []byte {
|
||||
return strconv.AppendUint(dst, u, 10)
|
||||
}
|
||||
@@ -236,6 +191,7 @@ func (b BaseEncoder) AppendNull(dst []byte) []byte {
|
||||
return append(dst, b.nullValue...)
|
||||
}
|
||||
|
||||
//nolint:mnd
|
||||
func (b BaseEncoder) AppendInt(dst []byte, val int64) []byte {
|
||||
return strconv.AppendInt(dst, val, 10)
|
||||
}
|
||||
@@ -251,17 +207,6 @@ func (b BaseEncoder) AppendGroup(dst []byte, fields []Field) []byte {
|
||||
return append(dst, b.group.end)
|
||||
}
|
||||
|
||||
func (b BaseEncoder) appendGroup(dst []byte, fields []Field, prefix string) []byte {
|
||||
if len(fields) > 0 {
|
||||
dst = b.appendField(dst, fields[0], ".", b.delimeter)
|
||||
for _, field := range fields[1:] {
|
||||
dst = b.appendField(append(dst, b.group.deli), field, prefix, b.delimeter)
|
||||
}
|
||||
}
|
||||
|
||||
return dst
|
||||
}
|
||||
|
||||
func (b BaseEncoder) AppendArray(dst []byte, in []Value) []byte {
|
||||
dst = append(dst, b.array.start)
|
||||
if len(in) > 0 {
|
||||
@@ -280,3 +225,60 @@ func (b BaseEncoder) AppendBytes(dst, in []byte) []byte {
|
||||
|
||||
return append(dst, '"')
|
||||
}
|
||||
|
||||
func (b BaseEncoder) appendGroup(dst []byte, fields []Field, prefix string) []byte {
|
||||
if len(fields) > 0 {
|
||||
dst = b.appendField(dst, fields[0], ".", b.delimeter)
|
||||
for _, field := range fields[1:] {
|
||||
dst = b.appendField(append(dst, b.group.deli), field, prefix, b.delimeter)
|
||||
}
|
||||
}
|
||||
|
||||
return dst
|
||||
}
|
||||
|
||||
func (b BaseEncoder) appendField(dst []byte, field Field, prefix string, deli byte) []byte {
|
||||
dst = b.AppendKey(dst, field.Key, prefix)
|
||||
|
||||
return b.appendValue(dst, field.Value, field.Key+".", deli)
|
||||
}
|
||||
|
||||
//nolint:mnd,gocyclo,cyclop
|
||||
func (b BaseEncoder) appendValue(dst []byte, val Value, prefix string, deli byte) []byte {
|
||||
switch val.Kind {
|
||||
case KindGroup:
|
||||
return b.appendGroup(dst, val.AsGroup(), prefix)
|
||||
case KindClosure:
|
||||
return b.appendValue(dst, AnyValue(val.Resolve()), prefix, deli)
|
||||
case KindArray:
|
||||
return b.AppendArray(b.AppendDelimiter(dst, deli), val.AsArray())
|
||||
case KindNil:
|
||||
return b.AppendNull(b.AppendDelimiter(dst, deli))
|
||||
case KindBool:
|
||||
return b.AppendBool(b.AppendDelimiter(dst, deli), val.AsBool())
|
||||
case KindBinary:
|
||||
return b.AppendBytes(b.AppendDelimiter(dst, deli), val.AsBinary())
|
||||
case KindComplex128:
|
||||
return b.AppendComplex(b.AppendDelimiter(dst, deli), val.AsComplex128())
|
||||
case KindInt64:
|
||||
return b.AppendInt(b.AppendDelimiter(dst, deli), val.AsInt64())
|
||||
case KindFloat32:
|
||||
return b.AppendFloat(b.AppendDelimiter(dst, deli), float64(val.AsFloat32()), 32)
|
||||
case KindFloat64:
|
||||
return b.AppendFloat(b.AppendDelimiter(dst, deli), val.AsFloat64(), 64)
|
||||
case KindUint64:
|
||||
return b.AppendUint(b.AppendDelimiter(dst, deli), val.AsUint64())
|
||||
case KindError:
|
||||
return b.AppendString(b.AppendDelimiter(dst, deli), val.AsError().Error())
|
||||
case KindString:
|
||||
return b.AppendString(b.AppendDelimiter(dst, deli), val.AsString())
|
||||
case KindDuration:
|
||||
return b.AppendDuration(b.AppendDelimiter(dst, deli), val.AsDuration())
|
||||
case KindTime:
|
||||
return b.AppendTime(b.AppendDelimiter(dst, deli), val.AsTime())
|
||||
case KindAny:
|
||||
return b.DefaultValue(b.AppendDelimiter(dst, deli), b, val)
|
||||
}
|
||||
|
||||
return b.DefaultValue(b.AppendDelimiter(dst, deli), b, val)
|
||||
}
|
||||
|
||||
@@ -15,6 +15,7 @@ func TestEncoderJSONAppendField_string(t *testing.T) {
|
||||
encode := field.NewEncoderJSON()
|
||||
|
||||
buf := buffer.New()
|
||||
|
||||
defer func() {
|
||||
buf.Free()
|
||||
}()
|
||||
|
||||
@@ -2,6 +2,7 @@ package field
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"slices"
|
||||
"time"
|
||||
)
|
||||
|
||||
@@ -502,13 +503,6 @@ func (f Field) String() string {
|
||||
return fmt.Sprintf("%s=%+v", f.Key, f.Value)
|
||||
}
|
||||
|
||||
// String implent stringer.
|
||||
func (f Field) IsKey(keys ...string) bool {
|
||||
for _, key := range keys {
|
||||
if key == f.Key {
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
return false
|
||||
return slices.Contains(keys, f.Key)
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// nolint: exhaustruct
|
||||
//nolint:exhaustruct
|
||||
package field
|
||||
|
||||
import (
|
||||
@@ -27,7 +27,7 @@ func StringpValue(value *string) Value {
|
||||
return StringValue(*value)
|
||||
}
|
||||
|
||||
// StringpValue returns a new Value for a string.
|
||||
// StringsValue returns a new Value for a string.
|
||||
func StringsValue(value []string) Value {
|
||||
return Value{
|
||||
Kind: KindArray,
|
||||
@@ -115,7 +115,7 @@ func Uint8sValue(values []uint8) Value {
|
||||
}
|
||||
}
|
||||
|
||||
// Uint64sValue returns a Value for a []uint64.
|
||||
// Uint64pValue returns a Value for a []uint64.
|
||||
func Uint64pValue(v *uint64) Value {
|
||||
if v == nil {
|
||||
return NilValue()
|
||||
@@ -145,7 +145,7 @@ func Int64sValue(value []int64) Value {
|
||||
}
|
||||
}
|
||||
|
||||
// Int64sValue returns a Value for an *int64.
|
||||
// Int64pValue returns a Value for an *int64.
|
||||
func Int64pValue(value *int64) Value {
|
||||
if value == nil {
|
||||
return NilValue()
|
||||
@@ -159,7 +159,7 @@ func Float64Value(v float64) Value {
|
||||
return Value{num: math.Float64bits(v), Kind: KindFloat64}
|
||||
}
|
||||
|
||||
// Float64Value returns a Value for a floating-points number.
|
||||
// Float64sValue returns a Value for a floating-points number.
|
||||
func Float64sValue(values []float64) Value {
|
||||
return Value{
|
||||
Kind: KindArray,
|
||||
@@ -175,7 +175,7 @@ func Float64sValue(values []float64) Value {
|
||||
}
|
||||
}
|
||||
|
||||
// Float64Value returns a Value for a floating-points number.
|
||||
// Float64pValue returns a Value for a floating-points number.
|
||||
func Float64pValue(v *float64) Value {
|
||||
if v == nil {
|
||||
return NilValue()
|
||||
@@ -208,7 +208,7 @@ func Complex128Value(v complex128) Value {
|
||||
}
|
||||
}
|
||||
|
||||
// Complex128Value returns a Value for a []complex128.
|
||||
// Complex128sValue returns a Value for a []complex128.
|
||||
func Complex128sValue(values []complex128) Value {
|
||||
return Value{
|
||||
Kind: KindArray,
|
||||
@@ -224,7 +224,7 @@ func Complex128sValue(values []complex128) Value {
|
||||
}
|
||||
}
|
||||
|
||||
// Complex128Value returns a Value for a *complex128.
|
||||
// Complex128pValue returns a Value for a *complex128.
|
||||
func Complex128pValue(v *complex128) Value {
|
||||
if v == nil {
|
||||
return NilValue()
|
||||
@@ -275,7 +275,7 @@ func DurationValue(v time.Duration) Value {
|
||||
return Value{inum: v.Nanoseconds(), Kind: KindDuration}
|
||||
}
|
||||
|
||||
// DurationValue returns a Value for a *time.Duration.
|
||||
// DurationpValue returns a Value for a *time.Duration.
|
||||
func DurationpValue(v *time.Duration) Value {
|
||||
if v == nil {
|
||||
return NilValue()
|
||||
@@ -284,7 +284,7 @@ func DurationpValue(v *time.Duration) Value {
|
||||
return DurationValue(*v)
|
||||
}
|
||||
|
||||
// DurationValue returns a Value for a *time.Duration.
|
||||
// DurationsValue returns a Value for a *time.Duration.
|
||||
func DurationsValue(values []time.Duration) Value {
|
||||
return Value{
|
||||
Kind: KindArray,
|
||||
@@ -469,42 +469,7 @@ func (v Value) String() string {
|
||||
return string(v.append(buf))
|
||||
}
|
||||
|
||||
// append appends a text representation of v to dst.
|
||||
// v is formatted as with fmt.Sprint.
|
||||
//
|
||||
//nolint:gomnd,cyclop
|
||||
func (v Value) append(dst []byte) []byte {
|
||||
switch v.Kind {
|
||||
case KindString:
|
||||
return append(dst, v.AsString()...)
|
||||
case KindInt64:
|
||||
return strconv.AppendInt(dst, v.inum, 10)
|
||||
case KindUint64:
|
||||
return strconv.AppendUint(dst, v.num, 10)
|
||||
case KindFloat64:
|
||||
return strconv.AppendFloat(dst, v.AsFloat64(), 'g', -1, 64)
|
||||
case KindFloat32:
|
||||
return strconv.AppendFloat(dst, float64(v.AsFloat32()), 'g', -1, 32)
|
||||
case KindBool:
|
||||
return strconv.AppendBool(dst, v.AsBool())
|
||||
case KindDuration:
|
||||
return append(dst, v.AsDuration().String()...)
|
||||
case KindTime:
|
||||
return append(dst, v.AsTime().String()...)
|
||||
case KindError:
|
||||
return append(dst, v.AsError().Error()...)
|
||||
case KindGroup:
|
||||
return fmt.Append(dst, v.AsGroup())
|
||||
case KindClosure:
|
||||
return fmt.Append(dst, v.Resolve())
|
||||
case KindAny:
|
||||
return fmt.Append(dst, v.any)
|
||||
default:
|
||||
return fmt.Appendf(dst, "%+v", v.any)
|
||||
}
|
||||
}
|
||||
|
||||
// nolint: gocyclo,cyclop
|
||||
//nolint:gocyclo,cyclop
|
||||
func (v Value) Any() any {
|
||||
switch v.Kind {
|
||||
case KindAny, KindBinary:
|
||||
@@ -542,7 +507,7 @@ func (v Value) Any() any {
|
||||
return v.any
|
||||
}
|
||||
|
||||
// nolint: forcetypeassert
|
||||
//nolint:forcetypeassert
|
||||
func (v Value) AsString() string {
|
||||
if v.Kind != KindString {
|
||||
return ""
|
||||
@@ -567,6 +532,7 @@ func (v Value) AsUint64() uint64 {
|
||||
return v.num
|
||||
}
|
||||
|
||||
//nolint:gosec
|
||||
func (v Value) AsFloat32() float32 {
|
||||
return math.Float32frombits(uint32(v.num))
|
||||
}
|
||||
@@ -649,3 +615,38 @@ func (v Value) AsArray() Values {
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
||||
// append appends a text representation of v to dst.
|
||||
// v is formatted as with fmt.Sprint.
|
||||
//
|
||||
//nolint:mnd,cyclop
|
||||
func (v Value) append(dst []byte) []byte {
|
||||
switch v.Kind {
|
||||
case KindString:
|
||||
return append(dst, v.AsString()...)
|
||||
case KindInt64:
|
||||
return strconv.AppendInt(dst, v.inum, 10)
|
||||
case KindUint64:
|
||||
return strconv.AppendUint(dst, v.num, 10)
|
||||
case KindFloat64:
|
||||
return strconv.AppendFloat(dst, v.AsFloat64(), 'g', -1, 64)
|
||||
case KindFloat32:
|
||||
return strconv.AppendFloat(dst, float64(v.AsFloat32()), 'g', -1, 32)
|
||||
case KindBool:
|
||||
return strconv.AppendBool(dst, v.AsBool())
|
||||
case KindDuration:
|
||||
return append(dst, v.AsDuration().String()...)
|
||||
case KindTime:
|
||||
return append(dst, v.AsTime().String()...)
|
||||
case KindError:
|
||||
return append(dst, v.AsError().Error()...)
|
||||
case KindGroup:
|
||||
return fmt.Append(dst, v.AsGroup())
|
||||
case KindClosure:
|
||||
return fmt.Append(dst, v.Resolve())
|
||||
case KindAny:
|
||||
return fmt.Append(dst, v.any)
|
||||
default:
|
||||
return fmt.Appendf(dst, "%+v", v.any)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user