| 318 | } |
| 319 | |
| 320 | func (this *Table[T]) DecodeFieldKey(fieldName string, fieldKey []byte) (fieldValue []byte, key []byte, err error) { |
| 321 | var l = len(fieldKey) |
| 322 | var baseLen = len(this.FieldKey(fieldName)) + 1 /** $ **/ + 2 /** separator length **/ + 2 /** field length **/ |
| 323 | if l < baseLen { |
| 324 | err = errors.New("invalid field key") |
| 325 | return |
| 326 | } |
| 327 | |
| 328 | var fieldValueLen = binary.BigEndian.Uint16(fieldKey[l-2:]) |
| 329 | var data = fieldKey[baseLen-4 : l-2] |
| 330 | |
| 331 | fieldValue = data[:fieldValueLen] |
| 332 | key = data[fieldValueLen+2: /** separator length **/] |
| 333 | |
| 334 | return |
| 335 | } |
| 336 | |
| 337 | func (this *Table[T]) Close() error { |
| 338 | this.isClosed = true |