rec_val.go 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. // Package rec_val -- запись KV-хранилища.
  2. package rec_val
  3. import (
  4. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs"
  5. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/helpers"
  6. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/kspec"
  7. )
  8. var (
  9. hassert = helpers.Hassert
  10. )
  11. // RecVal -- запись KV-хранилища.
  12. //
  13. // Запись в файле значений бакета лежит
  14. // в виде JSON-строки, без форматирования для того,
  15. // чтобы можно было файл значений бакета писать построчно.
  16. type RecVal struct {
  17. Key_ *defs.StoreKey `json:"key"` // Ключ
  18. Val_ []byte `json:"val"` // Значение
  19. }
  20. // NewRecVal -- создание нового значения KV-хранилища.
  21. func NewRecVal(key *defs.StoreKey, val []byte) *RecVal {
  22. hassert(key != nil, "NewRecVal: key is empty")
  23. if val == nil {
  24. val = []byte{}
  25. }
  26. sf := &RecVal{
  27. Key_: key,
  28. Val_: val,
  29. }
  30. _ = kspec.IRecVal(sf)
  31. return sf
  32. }
  33. // Key -- ключ.
  34. func (sf *RecVal) Key() *defs.StoreKey {
  35. return sf.Key_
  36. }
  37. // Val -- значение.
  38. func (sf *RecVal) Val() []byte {
  39. return sf.Val_
  40. }