rec_kv.go 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. // package rec_kv -- запись KV-хранилища.
  2. package rec_kv
  3. import (
  4. "gitp78su.ipnodns.ru/svi/kern/v4/d0"
  5. "gitp78su.ipnodns.ru/svi/kern/v4/d2/lsi/store_ent/rec_key"
  6. "gitp78su.ipnodns.ru/svi/kern/v4/d2/lsi/store_ent/rec_meta"
  7. "gitp78su.ipnodns.ru/svi/kern/v4/d2/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. owner *d0.LOwner
  21. key rec_key.IRecKeyFix // Ключ записи
  22. meta rec_meta.IRecMeta // Метаданные записи
  23. val rec_val.IRecValFix // Значение записи
  24. }
  25. // NewRecKv -- создает новую запись.
  26. func NewRecKv(owner *d0.LOwner, key rec_key.IRecKeyFix, val rec_val.IRecValFix) *RecKv {
  27. d0.If(key == nil).Hassert("NewRecKv(): key==nil")
  28. d0.If(val == nil).Hassert("NewRecKv(): val==nil")
  29. meta := rec_meta.NewRecMeta(owner, key)
  30. sf := &RecKv{
  31. owner: owner,
  32. key: key,
  33. meta: meta,
  34. val: val,
  35. }
  36. _ = IRecKvFix(sf)
  37. return sf
  38. }
  39. // Key -- ключ записи.
  40. func (sf *RecKv) Key() rec_key.IRecKeyFix {
  41. return sf.key
  42. }
  43. // Meta -- метаданные записи.
  44. func (sf *RecKv) Meta() rec_meta.IRecMeta {
  45. return sf.meta
  46. }
  47. // Val -- значение записи.
  48. func (sf *RecKv) Val() rec_val.IRecValFix {
  49. return sf.val
  50. }