-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathinterface.go
58 lines (52 loc) · 1.64 KB
/
interface.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
package fields
import (
"fmt"
)
type FieldContainer interface {
Bool(key string, value bool) FieldContainer
Int(key string, value int) FieldContainer
Int8(key string, value int8) FieldContainer
Int16(key string, value int16) FieldContainer
Int32(key string, value int32) FieldContainer
Int64(key string, value int64) FieldContainer
Uint(key string, value uint) FieldContainer
Uint8(key string, value uint8) FieldContainer
Uint16(key string, value uint16) FieldContainer
Uint32(key string, value uint32) FieldContainer
Uint64(key string, value uint64) FieldContainer
Float32(key string, value float32) FieldContainer
Float64(key string, value float64) FieldContainer
Str(key string, value string) FieldContainer
Strings(key string, values []string) FieldContainer
Stringer(key string, value fmt.Stringer) FieldContainer
Any(key string, value interface{}) FieldContainer
Extract(out FieldExtractor)
}
type FieldExtractor interface {
Bool(key string, value bool)
Int(key string, value int)
Int8(key string, value int8)
Int16(key string, value int16)
Int32(key string, value int32)
Int64(key string, value int64)
Uint(key string, value uint)
Uint8(key string, value uint8)
Uint16(key string, value uint16)
Uint32(key string, value uint32)
Uint64(key string, value uint64)
Float32(key string, value float32)
Float64(key string, value float64)
Str(key string, value string)
Strings(key string, values []string)
Any(key string, value interface{})
}
type Extractor interface {
Extract(extractor FieldExtractor)
}
type Field interface {
Key() string
Value() fieldValue
}
type fieldValue interface {
Extract(key string, extractor FieldExtractor)
}