rec_kv.go 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. // package rec_kv -- запись KV-хранилища.
  2. package rec_kv
  3. import (
  4. "gitp78su.ipnodns.ru/svi/kern/v4/lev0"
  5. "gitp78su.ipnodns.ru/svi/kern/v4/lev2/lsi/store_ent/rec_key"
  6. "gitp78su.ipnodns.ru/svi/kern/v4/lev2/lsi/store_ent/rec_meta"
  7. "gitp78su.ipnodns.ru/svi/kern/v4/lev2/lsi/store_ent/rec_val"
  8. )
  9. // IRecKvFix -- интерфейс записи KV-хранилища.
  10. type IRecKvFix interface {
  11. // Meta -- метаданные записи
  12. Meta() rec_meta.IRecMeta
  13. // Key -- ключ записи
  14. Key() rec_key.IRecKeyFix
  15. // Val -- значение записи
  16. Val() rec_val.IRecValFix
  17. }
  18. // RecKv -- запись KV-хранилища.
  19. type RecKv struct {
  20. key rec_key.IRecKeyFix // Ключ записи
  21. meta rec_meta.IRecMeta // Метаданные записи
  22. val rec_val.IRecValFix // Значение записи
  23. }
  24. // NewRecKv -- создает новую запись.
  25. func NewRecKv(key rec_key.IRecKeyFix, val rec_val.IRecValFix) *RecKv {
  26. lev0.If(key == nil).Hassert("NewRecKv(): key==nil")
  27. lev0.If(val == nil).Hassert("NewRecKv(): val==nil")
  28. meta := rec_meta.NewRecMeta(key)
  29. sf := &RecKv{
  30. key: key,
  31. meta: meta,
  32. val: val,
  33. }
  34. _ = IRecKvFix(sf)
  35. return sf
  36. }
  37. // Key -- ключ записи.
  38. func (sf *RecKv) Key() rec_key.IRecKeyFix {
  39. return sf.key
  40. }
  41. // Meta -- метаданные записи.
  42. func (sf *RecKv) Meta() rec_meta.IRecMeta {
  43. return sf.meta
  44. }
  45. // Val -- значение записи.
  46. func (sf *RecKv) Val() rec_val.IRecValFix {
  47. return sf.val
  48. }