-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpcoredialect.go
67 lines (53 loc) · 1.51 KB
/
pcoredialect.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
59
60
61
62
63
64
65
66
67
package dgopcore
import (
"github.com/lyraproj/dgo/dgo"
"github.com/lyraproj/dgo/streamer"
"github.com/lyraproj/dgo/vf"
"github.com/lyraproj/pcore/pcore"
"github.com/lyraproj/pcore/px"
"github.com/lyraproj/pcore/serialization"
)
// PcoreDialect returns the pcore dialect
func PcoreDialect() streamer.Dialect {
return pcoreDialectSingleton
}
type pcoreDialect int
const pcoreDialectSingleton = pcoreDialect(0)
var typeKey = vf.String(serialization.PcoreTypeKey)
var valueKey = vf.String(serialization.PcoreValueKey)
var refKey = vf.String(serialization.PcoreRefKey)
var aliasType = vf.String(`Alias`)
var binaryType = vf.String(serialization.PcoreTypeBinary)
var sensitiveType = vf.String(serialization.PcoreTypeSensitive)
var mapType = vf.String(serialization.PcoreTypeHash)
var timeType = vf.String(`Timestamp`)
func (d pcoreDialect) TypeKey() dgo.String {
return typeKey
}
func (d pcoreDialect) ValueKey() dgo.String {
return valueKey
}
func (d pcoreDialect) RefKey() dgo.String {
return refKey
}
func (d pcoreDialect) AliasTypeName() dgo.String {
return aliasType
}
func (d pcoreDialect) BinaryTypeName() dgo.String {
return binaryType
}
func (d pcoreDialect) MapTypeName() dgo.String {
return mapType
}
func (d pcoreDialect) SensitiveTypeName() dgo.String {
return sensitiveType
}
func (d pcoreDialect) TimeTypeName() dgo.String {
return timeType
}
func (d pcoreDialect) ParseType(typeString dgo.String) (dt dgo.Type) {
pcore.Do(func(c px.Context) {
dt = fromType(c.ParseType(typeString.String()))
})
return
}