MCPcopy Create free account
hub / github.com/GoEdgeLab/EdgeNode / ComposeFieldKey

Method ComposeFieldKey

internal/utils/kvstore/table.go:132–142  ·  view source on GitHub ↗

ComposeFieldKey compose field key $Namespace$FieldName$FieldValueSeparatorKeyValueFieldLength[2]

(keyBytes []byte, fieldName string, fieldValueBytes []byte)

Source from the content-addressed store, hash-verified

130// ComposeFieldKey compose field key
131// $Namespace$FieldName$FieldValueSeparatorKeyValueFieldLength[2]
132func (this *Table[T]) ComposeFieldKey(keyBytes []byte, fieldName string, fieldValueBytes []byte) []byte {
133 // TODO use 'make()' and 'copy()' to pre-alloc memory space
134 var b = make([]byte, 2)
135 binary.BigEndian.PutUint16(b, uint16(len(fieldValueBytes)))
136 var fieldKey = append(this.FieldKey(fieldName), '$') // namespace
137 fieldKey = append(fieldKey, fieldValueBytes...) // field value
138 fieldKey = append(fieldKey, 0, 0) // separator
139 fieldKey = append(fieldKey, keyBytes...) // key value
140 fieldKey = append(fieldKey, b...) // field value length
141 return fieldKey
142}
143
144func (this *Table[T]) Exist(key string) (found bool, err error) {
145 if this.isClosed {

Callers 3

deleteKeysMethod · 0.95
setMethod · 0.95

Calls 1

FieldKeyMethod · 0.95

Tested by 1