Browse Source

SVI Линтеры

SVI 2 months ago
parent
commit
41f4fb5e4a
100 changed files with 724 additions and 704 deletions
  1. 2 2
      v4/cmd/demo/main.go
  2. 1 1
      v4/cmd/demo/main_test.go
  3. 90 90
      v4/kern.go
  4. 2 2
      v4/kern_test.go
  5. 11 11
      v4/lev0/helpers/helpers.go
  6. 10 10
      v4/lev0/helpers/helpers_test.go
  7. 8 8
      v4/lev0/kalias/kalias.go
  8. 1 1
      v4/lev0/ktypes/ibucket_base.go
  9. 1 1
      v4/lev0/ktypes/idict_kv.go
  10. 16 16
      v4/lev0/ktypes/ikernel_bus.go
  11. 1 1
      v4/lev0/ktypes/ikernel_ctx.go
  12. 1 1
      v4/lev0/ktypes/ikernel_int.go
  13. 1 1
      v4/lev0/ktypes/ikernel_keeper.go
  14. 3 3
      v4/lev0/ktypes/ikernel_module.go
  15. 1 1
      v4/lev0/ktypes/ikernel_monolit.go
  16. 1 1
      v4/lev0/ktypes/ikernel_server_http.go
  17. 1 1
      v4/lev0/ktypes/ikernel_store_kv.go
  18. 5 5
      v4/lev0/ktypes/ikernel_wg.go
  19. 5 5
      v4/lev0/ktypes/ilocal_ctx.go
  20. 7 7
      v4/lev0/ktypes/ilog_buf.go
  21. 1 1
      v4/lev0/ktypes/imodule_stat.go
  22. 1 1
      v4/lev0/ktypes/ioption.go
  23. 1 1
      v4/lev0/ktypes/irec_kv.go
  24. 1 1
      v4/lev0/ktypes/irec_meta.go
  25. 1 1
      v4/lev0/ktypes/irec_val.go
  26. 1 1
      v4/lev0/ktypes/iresult.go
  27. 1 1
      v4/lev0/ktypes/irw_mutex.go
  28. 1 1
      v4/lev0/ktypes/isafe_bool.go
  29. 1 1
      v4/lev0/ktypes/isafe_bool_react.go
  30. 1 1
      v4/lev0/ktypes/isafe_int.go
  31. 1 1
      v4/lev0/ktypes/isafe_string.go
  32. 2 2
      v4/lev0/proton/neutron.go
  33. 12 12
      v4/lev0/quark/contract/contract.go
  34. 14 14
      v4/lev0/quark/quark_base/quark_base.go
  35. 3 3
      v4/lev0/quark/quark_base/quark_base_test.go
  36. 6 6
      v4/lev0/quark/quark_bool/quark_bool.go
  37. 3 3
      v4/lev0/quark/quark_bool/quark_bool_test.go
  38. 13 13
      v4/lev0/quark/quark_byte/quark_byte.go
  39. 4 4
      v4/lev0/quark/quark_byte/quark_byte_test.go
  40. 10 10
      v4/lev0/quark/quark_float/quark_float.go
  41. 2 2
      v4/lev0/quark/quark_float/quark_float_test.go
  42. 9 9
      v4/lev0/quark/quark_int/quark_int.go
  43. 2 2
      v4/lev0/quark/quark_int/quark_int_test.go
  44. 6 6
      v4/lev0/quark/quark_str/quark_str.go
  45. 2 2
      v4/lev0/quark/quark_str/quark_str_test.go
  46. 9 9
      v4/lev0/quark/quark_val/quark_val.go
  47. 2 2
      v4/lev0/quark/quark_val/quark_val_test.go
  48. 18 18
      v4/lev1/ctx_value/ctx_value.go
  49. 1 1
      v4/lev1/ctx_value/ctx_value_test.go
  50. 13 13
      v4/lev1/kbus_msg/msg_pub/msg_pub.go
  51. 4 4
      v4/lev1/kbus_msg/msg_pub/msg_pub_test.go
  52. 13 13
      v4/lev1/kbus_msg/msg_serve/msg_serve.go
  53. 4 4
      v4/lev1/kbus_msg/msg_serve/msg_serve_test.go
  54. 17 17
      v4/lev1/kbus_msg/msg_sub/msg_sub.go
  55. 4 4
      v4/lev1/kbus_msg/msg_sub/msg_sub_test.go
  56. 12 12
      v4/lev1/kbus_msg/msg_unsub/msg_unsub.go
  57. 4 4
      v4/lev1/kbus_msg/msg_unsub/msg_unsub_test.go
  58. 28 28
      v4/lev1/kint/kint.go
  59. 1 1
      v4/lev1/kint/kint_test.go
  60. 24 24
      v4/lev1/lev1.go
  61. 12 12
      v4/lev1/local_ctx/local_ctx.go
  62. 6 6
      v4/lev1/local_ctx/local_ctx_test.go
  63. 17 17
      v4/lev1/log_buf/log_buf.go
  64. 1 1
      v4/lev1/log_buf/log_buf_test.go
  65. 2 2
      v4/lev1/log_dict_topic/log_dict_topic.go
  66. 1 1
      v4/lev1/log_dict_topic/log_dict_topic_test.go
  67. 8 8
      v4/lev1/log_msg/log_msg.go
  68. 2 2
      v4/lev1/log_msg/log_msg_test.go
  69. 14 14
      v4/lev1/lst_sort/lst_sort.go
  70. 5 5
      v4/lev1/lst_sort/lst_sort_test.go
  71. 11 11
      v4/lev1/mock_env/mock_env.go
  72. 3 3
      v4/lev1/mock_env/mock_env_test.go
  73. 10 10
      v4/lev1/option/option.go
  74. 4 4
      v4/lev1/option/option_test.go
  75. 14 14
      v4/lev1/result/result.go
  76. 6 6
      v4/lev1/result/result_test.go
  77. 10 10
      v4/lev1/safe_bool/safe_bool.go
  78. 13 13
      v4/lev1/safe_bool/safe_bool_test.go
  79. 12 12
      v4/lev1/safe_bool_react/safe_bool_react.go
  80. 16 16
      v4/lev1/safe_bool_react/safe_bool_react_test.go
  81. 17 17
      v4/lev1/safe_int/safe_int.go
  82. 15 15
      v4/lev1/safe_int/safe_int_test.go
  83. 9 9
      v4/lev1/safe_string/safe_string.go
  84. 11 11
      v4/lev1/safe_string/safe_string_test.go
  85. 7 7
      v4/lev2/kbus_base/kbus_base_test.go
  86. 8 6
      v4/lev2/kbus_http/client_bus_http/client_bus_http.go
  87. 2 2
      v4/lev2/kbus_http/client_bus_http/client_bus_http_test.go
  88. 51 31
      v4/lev2/kbus_http/kbus_http_test.go
  89. 3 3
      v4/lev2/kbus_local/client_bus_local/client_bus_local.go
  90. 1 1
      v4/lev2/kmodule/kmodule_test.go
  91. 1 1
      v4/lev2/kmodule/mod_stat/mod_stat_day/mod_stat_day.go
  92. 1 1
      v4/lev2/kmonolit/kmonolit_test.go
  93. 1 3
      v4/lev2/kserv_http/kserv_http.go
  94. 1 1
      v4/lev2/kserv_http/kserv_http_test.go
  95. 1 1
      v4/lev2/mock_hand_sub_http/mock_hand_sub_http_test.go
  96. 3 3
      v4/lev2/mock_hand_sub_local/mock_hand_sub_test.go
  97. 1 1
      v4/lev2/wui/hx_swap/hx_swap.go
  98. 1 1
      v4/lev2/wui/hx_swap_oob/hx_swap_oob.go
  99. 1 1
      v4/lev2/wui/hx_target/hx_target.go
  100. 1 1
      v4/lev2/wui/hx_trigger/hx_trigger.go

+ 2 - 2
v4/cmd/demo/main.go

@@ -3,10 +3,10 @@ package main
 
 import (
 	"gitp78su.ipnodns.ru/svi/kern/v4"
-	. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/ktypes"
+	kt "gitp78su.ipnodns.ru/svi/kern/v4/lev0/ktypes"
 )
 
-var app IKernelMonolit
+var app kt.IKernelMonolit
 
 func main() {
 	app = kern.GetMonolitLocal("Demo monolit").Hassert("main()")

+ 1 - 1
v4/cmd/demo/main_test.go

@@ -13,7 +13,7 @@ func TestMain(t *testing.T) {
 	t.Log("TestMain")
 	_ = mock_env.MakeEnv()
 	_ = os.Unsetenv("LOCAL_HTTP_URL")
-	os.Setenv("LOCAL_HTTP_URL", "http://localhost:18332/")
+	_ = os.Setenv("LOCAL_HTTP_URL", "http://localhost:18332/")
 	go main()
 	time.Sleep(time.Second * 2)
 	kCtx := kctx.GetKernelCtx().Hassert("TestMain()")

+ 90 - 90
v4/kern.go

@@ -1,12 +1,12 @@
-// package kern -- библиотека гибкого универсального облегчённого ядра для любого микросервиса
+// package kern -- библиотека гибкого универсального облегчённого ядра для любого микросервиса.
 package kern
 
 import (
 	"context"
 	"fmt"
 
-	. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/kalias"
-	. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/ktypes"
+	mKa "gitp78su.ipnodns.ru/svi/kern/v4/lev0/kalias"
+	kt "gitp78su.ipnodns.ru/svi/kern/v4/lev0/ktypes"
 	"gitp78su.ipnodns.ru/svi/kern/v4/lev1"
 	"gitp78su.ipnodns.ru/svi/kern/v4/lev2/kbus_http"
 	"gitp78su.ipnodns.ru/svi/kern/v4/lev2/kbus_http/client_bus_http"
@@ -23,99 +23,99 @@ import (
 	"gitp78su.ipnodns.ru/svi/kern/v4/lev3/mod_wui"
 )
 
-// GetKernelCtx -- возвращает контекст ядра
-func GetKernelCtx() IResult[IKernelCtx] {
+// GetKernelCtx -- возвращает контекст ядра.
+func GetKernelCtx() kt.IResult[kt.IKernelCtx] {
 	resCtx := kctx.GetKernelCtx()
 	if resCtx.IsErr() {
 		err := fmt.Errorf("GetKernelCtx(): err=\n\t%w", resCtx.Err())
-		return NewErr[IKernelCtx](err)
+		return NewErr[kt.IKernelCtx](err)
 	}
-	return NewRes(IKernelCtx(resCtx.Val()))
+	return NewRes(kt.IKernelCtx(resCtx.Val()))
 }
 
-// NewErr -- возвращает Result с ошибкой
-func NewErr[T any](err error) IResult[T] {
+// NewErr -- возвращает Result с ошибкой.
+func NewErr[T any](err error) kt.IResult[T] {
 	return lev1.NewErr[T](err)
 }
 
-// NewRes -- возвращает успешный Result с значением
-func NewRes[T any](res T) IResult[T] {
+// NewRes -- возвращает успешный Result с значением.
+func NewRes[T any](res T) kt.IResult[T] {
 	return lev1.NewRes(res)
 }
 
-// WrapErr -- оборачивает существующий Result с ошибкой с новой ошибкой
-func WrapErr[T any](res IResult[T], err error) IResult[T] {
+// WrapErr -- оборачивает существующий Result с ошибкой с новой ошибкой.
+func WrapErr[T any](res kt.IResult[T], err error) kt.IResult[T] {
 	return lev1.WrapErr(res, err)
 }
 
-// GetKernelStoreKv -- возвращает быстрое key-value хранилище ядра
-func GetKernelStoreKv() IResult[IKernelStoreKv] {
+// GetKernelStoreKv -- возвращает быстрое key-value хранилище ядра.
+func GetKernelStoreKv() kt.IResult[kt.IKernelStoreKv] {
 	resStore := kstore_kv.GetKernelStore()
 	if resStore.IsErr() {
 		err := fmt.Errorf("GetKernelStoreKv(): err=\n\t%w", resStore.Err())
-		return NewErr[IKernelStoreKv](err)
+		return NewErr[kt.IKernelStoreKv](err)
 	}
-	store := IKernelStoreKv(resStore.Val())
+	store := kt.IKernelStoreKv(resStore.Val())
 	return NewRes(store)
 }
 
-// GetKernelServerHttp -- возвращает веб-сервер ядра
-func GetKernelServerHttp() IResult[IKernelServerHttp] {
+// GetKernelServerHttp -- возвращает веб-сервер ядра.
+func GetKernelServerHttp() kt.IResult[kt.IKernelServerHttp] {
 	kernServHttp := kserv_http.GetKernelServHttp()
 	return kernServHttp
 }
 
-// NewSafeBool -- возвращает новый потокобезопасный булевый признак
-func NewSafeBool() ISafeBool {
+// NewSafeBool -- возвращает новый потокобезопасный булевый признак.
+func NewSafeBool() kt.ISafeBool {
 	sb := lev1.NewSafeBool()
 	return sb
 }
 
-// GetKernelBusLocal -- возвращает локальную шину данных
-func GetKernelBusLocal() IResult[IKernelBus] {
+// GetKernelBusLocal -- возвращает локальную шину данных.
+func GetKernelBusLocal() kt.IResult[kt.IKernelBus] {
 	resCtx := kctx.GetKernelCtx()
 	if resCtx.IsErr() {
 		err := fmt.Errorf("GetKernelBusLocal(): err=\n\t%w", resCtx.Err())
-		return NewErr[IKernelBus](err)
+		return NewErr[kt.IKernelBus](err)
 	}
 	kCtx := resCtx.Val()
 	resSet := kCtx.Set("monolitName", "unknown monolit", "GetKernelBusLocal()")
 	if resSet.IsErr() {
 		err := fmt.Errorf("GetKernelBusLocal(): err=\n\t%w", resSet.Err())
-		return NewErr[IKernelBus](err)
+		return NewErr[kt.IKernelBus](err)
 	}
 	resBus := kbus_local.GetKernelBusLocal()
 	if resBus.IsErr() {
 		err := fmt.Errorf("GetKernelBusLocal(): err=\n\t%w", resBus.Err())
-		return NewErr[IKernelBus](err)
+		return NewErr[kt.IKernelBus](err)
 	}
-	bus := IKernelBus(resBus.Val())
+	bus := kt.IKernelBus(resBus.Val())
 	return NewRes(bus)
 }
 
-// GetKernelBusHttp -- возвращает HTTP шину данных
-func GetKernelBusHttp() IResult[IKernelBus] {
+// GetKernelBusHttp -- возвращает HTTP шину данных.
+func GetKernelBusHttp() kt.IResult[kt.IKernelBus] {
 	bus := kbus_http.GetKernelBusHttp()
 	return bus
 }
 
-// SleepMs -- спит миллисекунду
+// SleepMs -- спит миллисекунду.
 func SleepMs() {
 	lev1.SleepMs()
 }
 
-// GetMonolitLocal -- возвращает монолит с локальной шиной
-func GetMonolitLocal(name string) IResult[IKernelMonolit] {
+// GetMonolitLocal -- возвращает монолит с локальной шиной.
+func GetMonolitLocal(name string) kt.IResult[kt.IKernelMonolit] {
 	resCtx := kctx.GetKernelCtx()
 	if resCtx.IsErr() {
 		err := fmt.Errorf("GetMonolitLocal(): err=\n\t%w", resCtx.Err())
-		return NewErr[IKernelMonolit](err)
+		return NewErr[kt.IKernelMonolit](err)
 	}
 	kCtx := resCtx.Val()
 	resSet := kCtx.Set("isLocal", true, "bus type")
 	if resSet.IsErr() {
 		err := fmt.Errorf("GetMonolitLocal(): err=\n\t%w", resSet.Err())
-		return NewErr[IKernelMonolit](err)
+		return NewErr[kt.IKernelMonolit](err)
 	}
 	for {
 		SleepMs()
@@ -127,25 +127,25 @@ func GetMonolitLocal(name string) IResult[IKernelMonolit] {
 	res := kmonolit.GetMonolit(name)
 	if res.IsErr() {
 		err := fmt.Errorf("GetMonolitLocal(): err=\n\t%w", res.Err())
-		return NewErr[IKernelMonolit](err)
+		return NewErr[kt.IKernelMonolit](err)
 	}
 	_ = kbus_local.GetKernelBusLocal()
-	return NewRes(IKernelMonolit(res.Val()))
+	return NewRes(kt.IKernelMonolit(res.Val()))
 }
 
-// GetMonolitHttp -- возвращает монолит с локальной шиной поверх HTTP
-func GetMonolitHttp(name string) IResult[IKernelMonolit] {
+// GetMonolitHttp -- возвращает монолит с локальной шиной поверх HTTP.
+func GetMonolitHttp(name string) kt.IResult[kt.IKernelMonolit] {
 	resCtx := kctx.GetKernelCtx()
 	if resCtx.IsErr() {
 		err := fmt.Errorf("GetMonolitHttp(): err=\n\t%w", resCtx.Err())
-		return NewErr[IKernelMonolit](err)
+		return NewErr[kt.IKernelMonolit](err)
 	}
 	kCtx := resCtx.Val()
 	_ = kbus_http.GetKernelBusHttp()
 	resSet := kCtx.Set("isLocal", false, "bus type")
 	if resSet.IsErr() {
 		err := fmt.Errorf("GetMonolitHttp(): err=\n\t%w", resSet.Err())
-		return NewErr[IKernelMonolit](err)
+		return NewErr[kt.IKernelMonolit](err)
 	}
 	for {
 		SleepMs()
@@ -157,151 +157,151 @@ func GetMonolitHttp(name string) IResult[IKernelMonolit] {
 	res := kmonolit.GetMonolit(name)
 	if res.IsErr() {
 		err := fmt.Errorf("GetMonolitHttp(): err=\n\t%w", res.Err())
-		return NewErr[IKernelMonolit](err)
+		return NewErr[kt.IKernelMonolit](err)
 	}
-	return NewRes(IKernelMonolit(res.Val()))
+	return NewRes(kt.IKernelMonolit(res.Val()))
 }
 
-// NewKernelModule -- возвращает новый модуль на ядре
-func NewKernelModule(name AModuleName) IResult[IKernelModule] {
+// NewKernelModule -- возвращает новый модуль на ядре.
+func NewKernelModule(name mKa.AModuleName) kt.IResult[kt.IKernelModule] {
 	resMod := kmodule.NewKernelModule(name)
 	return resMod
 }
 
-// NewClientBusLocal -- возвращает клиент для работы с локальной шиной
-func NewClientBusLocal() IResult[IBusClient] {
+// NewClientBusLocal -- возвращает клиент для работы с локальной шиной.
+func NewClientBusLocal() kt.IResult[kt.IBusClient] {
 	res := client_bus_local.NewClientBusLocal()
 	if res.IsErr() {
 		err := fmt.Errorf("NewClientBusLocal(): err=\n\t%w", res.Err())
-		return NewErr[IBusClient](err)
+		return NewErr[kt.IBusClient](err)
 	}
 	client := res.Val()
 	return NewRes(client)
 }
 
-// NewClientBusHttp -- возвращает клиент для работы с шиной поверх HTTP
-func NewClientBusHttp(url string) IResult[IBusClient] {
+// NewClientBusHttp -- возвращает клиент для работы с шиной поверх HTTP.
+func NewClientBusHttp(url string) kt.IResult[kt.IBusClient] {
 	client := client_bus_http.NewClientBusHttp(url)
 	return client
 }
 
-// GetModuleServHttp -- возвращает модуль для IKernelServHttp
-func GetModuleServHttp() IResult[IKernelModule] {
+// GetModuleServHttp -- возвращает модуль для IKernelServHttp.
+func GetModuleServHttp() kt.IResult[kt.IKernelModule] {
 	resHttp := mod_serv_http.GetModuleServHttp()
 	if resHttp.IsErr() {
 		err := fmt.Errorf("GetModuleServHttp(): err=\n\t%w", resHttp.Err())
-		return NewErr[IKernelModule](err)
+		return NewErr[kt.IKernelModule](err)
 	}
 	modServHttp := resHttp.Val()
-	return NewRes(IKernelModule(modServHttp))
+	return NewRes(kt.IKernelModule(modServHttp))
 }
 
-// GetModuleKernelCtx -- возвращает модуль для IKernelCtx
-func GetModuleKernelCtx() IResult[IKernelModule] {
+// GetModuleKernelCtx -- возвращает модуль для IKernelCtx.
+func GetModuleKernelCtx() kt.IResult[kt.IKernelModule] {
 	resMod := mod_kctx.GetModuleKernelCtx()
 	if resMod.IsErr() {
 		err := fmt.Errorf("GetModuleKernelCtx(): err=\n\t%w", resMod.Err())
-		return NewErr[IKernelModule](err)
+		return NewErr[kt.IKernelModule](err)
 	}
 	mod := resMod.Val()
-	return NewRes(IKernelModule(mod))
+	return NewRes(kt.IKernelModule(mod))
 }
 
-// GetModuleKernelKeeper -- возвращает модуль для IKernelKeeper
-func GetModuleKernelKeeper() IResult[IKernelModule] {
+// GetModuleKernelKeeper -- возвращает модуль для IKernelKeeper.
+func GetModuleKernelKeeper() kt.IResult[kt.IKernelModule] {
 	resKeeper := mod_keeper.GetModuleKeeper()
 	if resKeeper.IsErr() {
 		err := fmt.Errorf("GetModuleKernelKeeper(): err=\n\t%w", resKeeper.Err())
-		return NewErr[IKernelModule](err)
+		return NewErr[kt.IKernelModule](err)
 	}
 	modKernelKeeper := resKeeper.Val()
-	return NewRes(IKernelModule(modKernelKeeper))
+	return NewRes(kt.IKernelModule(modKernelKeeper))
 }
 
-// GetModuleWui -- возвращает модуль для WUI
-func GetModuleWui() IResult[IKernelModule] {
+// GetModuleWui -- возвращает модуль для WUI.
+func GetModuleWui() kt.IResult[kt.IKernelModule] {
 	resMod := mod_wui.GetModuleWui()
 	if resMod.IsErr() {
 		err := fmt.Errorf("GetModuleWui(): err=\n\t%w", resMod.Err())
-		return NewErr[IKernelModule](err)
+		return NewErr[kt.IKernelModule](err)
 	}
 	modWui := resMod.Val()
-	return NewRes(IKernelModule(modWui))
+	return NewRes(kt.IKernelModule(modWui))
 }
 
-// NewLogBuf -- возвращает новый буферизованный лог
-func NewLogBuf(opts ...lev1.OptionLogBuf) ILogBuf {
+// NewLogBuf -- возвращает новый буферизованный лог.
+func NewLogBuf(opts ...lev1.OptionLogBuf) kt.ILogBuf {
 	log := lev1.NewLogBuf(opts...)
 	return log
 }
 
-// NewSafeBoolReact -- возвращает новую потокобезопасную реактивную булеву переменную
-func NewSafeBoolReact() ISafeBoolReact {
+// NewSafeBoolReact -- возвращает новую потокобезопасную реактивную булеву переменную.
+func NewSafeBoolReact() kt.ISafeBoolReact {
 	val := lev1.NewSafeBoolReact()
 	return val
 }
 
-// NewSafeInt -- возвращает новую потокобезопасную целочисленную переменную
-func NewSafeInt(val int) ISafeInt {
+// NewSafeInt -- возвращает новую потокобезопасную целочисленную переменную.
+func NewSafeInt(val int) kt.ISafeInt {
 	val_ := lev1.NewSafeInt(val)
 	return val_
 }
 
-// NewInt -- возвращает новую целочисленную переменную
-func NewInt(val int) Int {
+// NewInt -- возвращает новую целочисленную переменную.
+func NewInt(val int) kt.Int {
 	val_ := lev1.NewInt(val)
 	return val_
 }
 
-// NewLocalCtx -- возвращает новый локальный контекст
-func NewLocalCtx(ctx context.Context) IResult[ILocalCtx] {
+// NewLocalCtx -- возвращает новый локальный контекст.
+func NewLocalCtx(ctx context.Context) kt.IResult[kt.ILocalCtx] {
 	resCtx := lev1.NewLocalCtx(ctx)
 	if resCtx.IsErr() {
 		err := fmt.Errorf("NewLocalCtx(): err=\n\t%w", resCtx.Err())
-		return NewErr[ILocalCtx](err)
+		return NewErr[kt.ILocalCtx](err)
 	}
 	ctx_ := resCtx.Val()
 	return NewRes(ctx_)
 }
 
-// NewSafeString -- возвращает новую потокобезопасную строку
-func NewSafeString() ISafeString {
+// NewSafeString -- возвращает новую потокобезопасную строку.
+func NewSafeString() kt.ISafeString {
 	str := lev1.NewSafeString()
 	return str
 }
 
-// MakeOk -- возвращает новый положительный результат операции
-func MakeOk[T any](res T) IResult[T] {
+// MakeOk -- возвращает новый положительный результат операции.
+func MakeOk[T any](res T) kt.IResult[T] {
 	return NewRes(res)
 }
 
-// MakeErr -- возвращает новую ошибку результат операции
-func MakeErr[T any](err error) IResult[T] {
+// MakeErr -- возвращает новую ошибку результат операции.
+func MakeErr[T any](err error) kt.IResult[T] {
 	return NewErr[T](err)
 }
 
-// NewOpt -- возвращает новый не пустой результат операции
-func NewOpt[T any](some T) IOption[T] {
+// NewOpt -- возвращает новый не пустой результат операции.
+func NewOpt[T any](some T) kt.IOption[T] {
 	return lev1.NewOpt(some)
 }
 
-// NewNone -- возвращает новый пустой результат операции
-func NewNone[T any]() IOption[T] {
+// NewNone -- возвращает новый пустой результат операции.
+func NewNone[T any]() kt.IOption[T] {
 	return lev1.NewNone[T]()
 }
 
-// FnHassert -- проверяет с жёстким падением условие
+// FnHassert -- проверяет с жёстким падением условие.
 type FnHassert = lev1.FnHassert
 
-// Hassert -- возвращает ссылку на функцию Hassert
+// Hassert -- возвращает ссылку на функцию Hassert.
 func Hassert() FnHassert {
 	return lev1.Hassert()
 }
 
-// FnAssert -- проверка на правильность утверждения с падением в панику на локальном стенде (soft assert)
+// FnAssert -- проверка на правильность утверждения с падением в панику на локальном стенде (soft assert).
 type FnAssert = lev1.FnAssert
 
-// Assert -- возвращает ссылку на функцию Hassert
+// Assert -- возвращает ссылку на функцию Hassert.
 func Assert() FnAssert {
 	return lev1.Assert()
 }

+ 2 - 2
v4/kern_test.go

@@ -27,7 +27,7 @@ func TestBuilders(t *testing.T) {
 	_ = os.Unsetenv("LOCAL_STORE_PATH")
 	_ = os.Setenv("LOCAL_STORE_PATH", pathStore)
 	_ = os.Unsetenv("LOCAL_HTTP_URL")
-	os.Setenv("LOCAL_HTTP_URL", baseUrl)
+	_ = os.Setenv("LOCAL_HTTP_URL", baseUrl)
 	fnClear := func() {
 		_ = os.RemoveAll(pathStore)
 	}
@@ -45,7 +45,7 @@ func (sf *tester) newModBad() {
 	}
 }
 
-// создание компонентов
+// создание компонентов.
 func (sf *tester) new() {
 	sf.t.Log("new")
 	ctx := GetKernelCtx().Hassert("new()")

+ 11 - 11
v4/lev0/helpers/helpers.go

@@ -1,4 +1,4 @@
-// package helpers -- содержит всякие полезняшки
+// package helpers -- содержит всякие полезняшки.
 //
 // Пакет импортировать где нужно в нотации `. "gitlab.c2g.pw/back/uaj-abstract-client/pkg/helpers"`
 package helpers
@@ -9,7 +9,7 @@ import (
 	"os"
 	"time"
 
-	. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/kalias"
+	mKa "gitp78su.ipnodns.ru/svi/kern/v4/lev0/kalias"
 )
 
 var (
@@ -17,12 +17,12 @@ var (
 	IsStageProd  bool
 )
 
-// FnAssert -- проверка на правильность утверждения с падением в панику на локальном стенде (soft assert)
+// FnAssert -- проверка на правильность утверждения с падением в панику на локальном стенде (soft assert).
 //
 //	(isCond bool, msgFormat string, args ...any)
 type FnAssert func(isCond bool, msgFormat string, args ...any)
 
-// Assert -- проверка на правильность утверждения с падением в панику на локальном стенде (soft assert)
+// Assert -- проверка на правильность утверждения с падением в панику на локальном стенде (soft assert).
 func Assert(isCond bool, msgFormat string, args ...any) {
 	if isCond {
 		return
@@ -34,12 +34,12 @@ func Assert(isCond bool, msgFormat string, args ...any) {
 	log.Print(msg)
 }
 
-// FnHassert -- проверяет с жёстким падением условие
+// FnHassert -- проверяет с жёстким падением условие.
 //
 //	(isCond bool, msgFormat string, args ...any)
 type FnHassert func(isCond bool, msgFormat string, args ...any)
 
-// Hassert -- проверка на правильность утверждения с безусловным падением в панику (hard assert)
+// Hassert -- проверка на правильность утверждения с безусловным падением в панику (hard assert).
 func Hassert(isCond bool, msgFormat string, args ...any) {
 	if isCond {
 		return
@@ -48,19 +48,19 @@ func Hassert(isCond bool, msgFormat string, args ...any) {
 	panic(msg)
 }
 
-// TimeNowStr -- возвращает стандартную строку локального сейчас-времени "2006-01-02 15:04:05.000 -07 MST"
-func TimeNowStr() ATime {
+// TimeNowStr -- возвращает стандартную строку локального сейчас-времени "2006-01-02 15:04:05.000 -07 MST".
+func TimeNowStr() mKa.ATime {
 	strTime := time.Now().Local().Format("2006-01-02 15:04:05.000 -07 MST")
-	return ATime(strTime)
+	return mKa.ATime(strTime)
 }
 
-// TimeNow -- возвращает локальное Unix сейчас-время (мсек, не зависит от положения)
+// TimeNow -- возвращает локальное Unix сейчас-время (мсек, не зависит от положения).
 func TimeNow() int64 {
 	timeNow := time.Now().Local().UnixMilli()
 	return timeNow
 }
 
-// SleepMs -- спит миллисекунду (иногда бывает полезно)
+// SleepMs -- спит миллисекунду (иногда бывает полезно).
 func SleepMs() {
 	time.Sleep(time.Millisecond * 1)
 }

+ 10 - 10
v4/lev0/helpers/helpers_test.go

@@ -21,7 +21,7 @@ func TestHelpers(t *testing.T) {
 	_ = os.Unsetenv("LOCAL_STORE_PATH")
 	_ = os.Setenv("LOCAL_STORE_PATH", pathStore)
 	_ = os.Unsetenv("LOCAL_HTTP_URL")
-	os.Setenv("LOCAL_HTTP_URL", baseUrl)
+	_ = os.Setenv("LOCAL_HTTP_URL", baseUrl)
 	fnClear := func() {
 		_ = os.RemoveAll(pathStore)
 	}
@@ -32,7 +32,7 @@ func TestHelpers(t *testing.T) {
 	sf.init_()
 }
 
-// Неизвестное значение STAGE
+// Неизвестное значение STAGE.
 func (sf *tester) init_() {
 	sf.t.Log("init_")
 	sf.initBad1()
@@ -74,7 +74,7 @@ func (sf *tester) initBad1() {
 	init_()
 }
 
-// Проверка мягкого ассерта
+// Проверка мягкого ассерта.
 func (sf *tester) hassert() {
 	sf.t.Log("assert")
 	sf.hassertLocal()
@@ -89,13 +89,13 @@ func (sf *tester) hassert() {
 	SleepMs()
 }
 
-// Мягкая ТВЁРДАЯ проверка на ок
+// Мягкая ТВЁРДАЯ проверка на ок.
 func (sf *tester) hassertProdGood1() {
 	sf.t.Log("hassertProdGood1")
 	Hassert(true, "tra-la-la")
 }
 
-// Твёрдая проверка
+// Твёрдая проверка.
 func (sf *tester) hassertProd() {
 	sf.t.Log("hassertProd")
 	err := os.Setenv("STAGE", "prod")
@@ -111,7 +111,7 @@ func (sf *tester) hassertProd() {
 	Hassert(false, "tra-la-la")
 }
 
-// ТВЁРДАЯ проверка
+// ТВЁРДАЯ проверка.
 func (sf *tester) hassertLocal() {
 	sf.t.Log("hassertLocal")
 	defer func() {
@@ -124,7 +124,7 @@ func (sf *tester) hassertLocal() {
 
 // ========================================================================
 
-// Проверка мягкого ассерта
+// Проверка мягкого ассерта.
 func (sf *tester) assert() {
 	sf.t.Log("assert")
 	sf.assertLocal()
@@ -132,13 +132,13 @@ func (sf *tester) assert() {
 	sf.assertProdGood1()
 }
 
-// Мягкая ТВЁРДАЯ проверка на ок
+// Мягкая ТВЁРДАЯ проверка на ок.
 func (sf *tester) assertProdGood1() {
 	sf.t.Log("assertProdGood1")
 	Assert(true, "tra-la-la")
 }
 
-// Мягкая мягка проверка (на проде)
+// Мягкая мягка проверка (на проде).
 func (sf *tester) assertProd() {
 	sf.t.Log("assertProd")
 	err := os.Setenv("STAGE", "prod")
@@ -149,7 +149,7 @@ func (sf *tester) assertProd() {
 	Assert(false, "tra-la-la")
 }
 
-// Мягкая ТВЁРДАЯ локальная проверка (локально)
+// Мягкая ТВЁРДАЯ локальная проверка (локально).
 func (sf *tester) assertLocal() {
 	sf.t.Log("assertLocal")
 	defer func() {

+ 8 - 8
v4/lev0/kalias/kalias.go

@@ -1,22 +1,22 @@
-// package kalias -- алиасы типов ядра
+// package kalias -- алиасы типов ядра.
 package kalias
 
-// ATime -- метка времени
+// ATime -- метка времени.
 //
-// Вывод: "2006-01-02 15:04:05.000 -07 MST")
+// Вывод: "2006-01-02 15:04:05.000 -07 MST".
 type ATime string
 
-// AStreamName -- имя потока для ожидания
+// AStreamName -- имя потока для ожидания.
 type AStreamName string
 
-// ATopic -- имя топика в шине
+// ATopic -- имя топика в шине.
 type ATopic string
 
-// AHandlerName -- имя функции обработчика
+// AHandlerName -- имя функции обработчика.
 type AHandlerName string
 
-// AModuleName -- уникальное имя модуля
+// AModuleName -- уникальное имя модуля.
 type AModuleName string
 
-// AKey -- ключ
+// AKey -- ключ.
 type AKey string

+ 1 - 1
v4/lev0/ktypes/ibucket_base.go

@@ -1,6 +1,6 @@
 package ktypes
 
-// IBucketBase -- интерфейс базового бакета хранилища KV
+// IBucketBase -- интерфейс базового бакета хранилища KV.
 type IBucketBase interface {
 	// Name -- имя бакета
 	Name() string

+ 1 - 1
v4/lev0/ktypes/idict_kv.go

@@ -2,7 +2,7 @@ package ktypes
 
 import "gitp78su.ipnodns.ru/svi/kern/v4/lev0/kalias"
 
-// IDictRec -- интерфейс потокобезопасного словаря KV-бакета
+// IDictRec -- интерфейс потокобезопасного словаря KV-бакета.
 type IDictRec interface {
 	// Get -- возвращает значение по ключу
 	Get(key kalias.AKey) IOption[IRecKv]

+ 16 - 16
v4/lev0/ktypes/ikernel_bus.go

@@ -1,32 +1,32 @@
 package ktypes
 
 import (
-	. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/kalias"
+	mKa "gitp78su.ipnodns.ru/svi/kern/v4/lev0/kalias"
 )
 
-// IBusBaseHandler -- базовый обработчик обратного вызова
+// IBusBaseHandler -- базовый обработчик обратного вызова.
 type IBusBaseHandler interface {
 	// Topic -- топик подписки обработчика
-	Topic() ATopic
+	Topic() mKa.ATopic
 	// Name -- уникальное имя обработчика
-	Name() AHandlerName
+	Name() mKa.AHandlerName
 }
 
-// IBusHandlerSubscribe -- объект обработчика подписки
+// IBusHandlerSubscribe -- объект обработчика подписки.
 type IBusHandlerSubscribe interface {
 	IBusBaseHandler
 	// FnBack -- функция обратного вызова
 	FnBack([]byte)
 }
 
-// IBusHandlerServe -- обработчик входящих запросов
+// IBusHandlerServe -- обработчик входящих запросов.
 type IBusHandlerServe interface {
 	IBusBaseHandler
 	// FnBack -- функция обратного вызова
 	FnBack(binReq []byte) IResult[[]byte]
 }
 
-// IDictSubHook -- словарь обработчиков по единственному топику
+// IDictSubHook -- словарь обработчиков по единственному топику.
 type IDictSubHook interface {
 	// Subscribe -- подписывает обработчик
 	Subscribe(IBusHandlerSubscribe) IResult[bool]
@@ -36,19 +36,19 @@ type IDictSubHook interface {
 	Unsubscribe(IBusHandlerSubscribe)
 }
 
-// IDictTopicSub -- интерфейс к словарю обработчиков подписки на словарь топиков
+// IDictTopicSub -- интерфейс к словарю обработчиков подписки на словарь топиков.
 //
-//	При подписке потребителей топика может быть НЕСКОЛЬКО на КАЖДЫЙ топик
+//	При подписке потребителей топика может быть НЕСКОЛЬКО на КАЖДЫЙ топик.
 type IDictTopicSub interface {
 	// Subscribe -- подписывает подписчиков на любой из топиков
 	Subscribe(IBusHandlerSubscribe) IResult[bool]
 	// Read -- читает сообщение для всех обработчиков подписки по приходу на любой из топиков
-	Read(topic ATopic, binMsg []byte)
+	Read(topic mKa.ATopic, binMsg []byte)
 	// Unsubscribe -- отписывает подписчиков от любого из топиков
 	Unsubscribe(IBusHandlerSubscribe)
 }
 
-// IDictTopicServe -- интерфейс к обработчику входящих запросов на словарь топиков
+// IDictTopicServe -- интерфейс к обработчику входящих запросов на словарь топиков.
 //
 // При обслуживании входящих запросов обработчик может быть только ОДИН на КАЖДЫЙ топик.
 // Но обработчик вызывается конкурентно.
@@ -56,20 +56,20 @@ type IDictTopicServe interface {
 	// Register -- регистрирует единственный обработчик на единственный топик
 	Register(IBusHandlerServe) IResult[bool]
 	// SendRequest -- выполняет запрос по указанному топику
-	SendRequest(topic ATopic, binReq []byte) IResult[[]byte]
+	SendRequest(topic mKa.ATopic, binReq []byte) IResult[[]byte]
 	// Unregister -- удаляет единственный обработчик с единственного топика
 	Unregister(IBusHandlerServe)
 }
 
-// IKernelBus -- шина сообщений ядра
+// IKernelBus -- шина сообщений ядра.
 //
 //	Публикация и запрос требуют параметров на _передачу_.
 //	Подписка и обслуживание входящих запросов требует _обработчиков_.
 type IKernelBus interface {
 	// Publish -- публикует сообщение в шину
-	Publish(topic ATopic, binMsg []byte) IResult[bool]
+	Publish(topic mKa.ATopic, binMsg []byte) IResult[bool]
 	// SendRequest -- выполняет запрос по указанному топику
-	SendRequest(topic ATopic, binReq []byte) IResult[[]byte]
+	SendRequest(topic mKa.ATopic, binReq []byte) IResult[[]byte]
 
 	// Subscribe -- подписывает обработчик на топик
 	Subscribe(IBusHandlerSubscribe) IResult[bool]
@@ -84,7 +84,7 @@ type IKernelBus interface {
 	Log() ILogBuf
 }
 
-// IBusClient -- интерфейс клиента к шину
+// IBusClient -- интерфейс клиента к шину.
 type IBusClient interface {
 	IKernelBus
 }

+ 1 - 1
v4/lev0/ktypes/ikernel_ctx.go

@@ -3,7 +3,7 @@ package ktypes
 
 import "context"
 
-// IKernelCtx -- интерфейс к контексту ядра
+// IKernelCtx -- интерфейс к контексту ядра.
 type IKernelCtx interface {
 	ILocalCtx
 	// CtxBg -- возвращает неотменяемый контекст ядра

+ 1 - 1
v4/lev0/ktypes/ikernel_int.go

@@ -1,6 +1,6 @@
 package ktypes
 
-// Int -- целочисленный тип ядра
+// Int -- целочисленный тип ядра.
 type Int interface {
 	// Get -- возвращает хранимое значение потокобезопасной переменной
 	Get() int

+ 1 - 1
v4/lev0/ktypes/ikernel_keeper.go

@@ -1,6 +1,6 @@
 package ktypes
 
-// IKernelKeeper -- сторож ядра
+// IKernelKeeper -- сторож ядра.
 type IKernelKeeper interface {
 	// Log -- возвращает лог сторожа
 	Log() ILogBuf

+ 3 - 3
v4/lev0/ktypes/ikernel_module.go

@@ -1,17 +1,17 @@
 package ktypes
 
 import (
-	. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/kalias"
+	mKa "gitp78su.ipnodns.ru/svi/kern/v4/lev0/kalias"
 )
 
-// IKernelModule -- интерфейс к модулю на основе ядра
+// IKernelModule -- интерфейс к модулю на основе ядра.
 type IKernelModule interface {
 	// Run -- запускает модуль в работу
 	Run()
 	// IsWork -- возвращает состояние модуля
 	IsWork() bool
 	// Name -- возвращает уникальное имя модуля
-	Name() AModuleName
+	Name() mKa.AModuleName
 	// Ctx -- возвращает контекст модуля
 	Ctx() ILocalCtx
 	// Log -- возвращает буферный лог модуля

+ 1 - 1
v4/lev0/ktypes/ikernel_monolit.go

@@ -1,6 +1,6 @@
 package ktypes
 
-// IKernelMonolit -- интерфейс к монолиту на основе ядра
+// IKernelMonolit -- интерфейс к монолиту на основе ядра.
 type IKernelMonolit interface {
 	// Name -- возвращает имя монолита
 	Name() string

+ 1 - 1
v4/lev0/ktypes/ikernel_server_http.go

@@ -2,7 +2,7 @@ package ktypes
 
 import "github.com/gofiber/fiber/v2"
 
-// IKernelServerHttp -- интерфейс к серверу HTTP в ядре
+// IKernelServerHttp -- интерфейс к серверу HTTP в ядре.
 type IKernelServerHttp interface {
 	// Run -- запускает сервер в работу (не блокирующий вызов)
 	Run()

+ 1 - 1
v4/lev0/ktypes/ikernel_store_kv.go

@@ -1,6 +1,6 @@
 package ktypes
 
-// IKernelStoreKv -- интерфейс к локальному быстрому key-value хранилищу ядра
+// IKernelStoreKv -- интерфейс к локальному быстрому key-value хранилищу ядра.
 type IKernelStoreKv interface {
 	// Get -- возвращает значение по ключу
 	Get(key string) IResult[[]byte]

+ 5 - 5
v4/lev0/ktypes/ikernel_wg.go

@@ -1,21 +1,21 @@
 package ktypes
 
 import (
-	. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/kalias"
+	mKa "gitp78su.ipnodns.ru/svi/kern/v4/lev0/kalias"
 )
 
-// IKernelWg -- интерфейс к именованному ожидателю потоков
+// IKernelWg -- интерфейс к именованному ожидателю потоков.
 type IKernelWg interface {
 	// Add -- добавляет имя потока в ожидатель потоков
-	Add(AStreamName) IResult[bool]
+	Add(mKa.AStreamName) IResult[bool]
 	// Done -- удаляет имя потока из ожидания
-	Done(AStreamName)
+	Done(mKa.AStreamName)
 	// Wait -- ожидает завершения работы всех потоков
 	Wait()
 	// IsWork -- признак работы ожидателя потоков (после закрытия добавлять нельзя)
 	IsWork() bool
 	// List -- возвращает список имён потоков на ожидании
-	List() []AStreamName
+	List() []mKa.AStreamName
 	// Len -- возвращает размер списка потоков ожидания
 	Len() int
 	// Log -- возвращает логгер ожидателя групп

+ 5 - 5
v4/lev0/ktypes/ilocal_ctx.go

@@ -3,10 +3,10 @@ package ktypes
 import (
 	"context"
 
-	. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/kalias"
+	mKa "gitp78su.ipnodns.ru/svi/kern/v4/lev0/kalias"
 )
 
-// ICtxValue -- интерфейс к значению локального контекста
+// ICtxValue -- интерфейс к значению локального контекста.
 type ICtxValue interface {
 	IRWMutex
 	// Key -- возвращает ключ значения
@@ -14,14 +14,14 @@ type ICtxValue interface {
 	// Val -- возвращает хранимое значение
 	Val() any
 	// CreateAt -- возвращает метку времени создания
-	CreateAt() ATime
+	CreateAt() mKa.ATime
 	// UpdateAt -- возвращает метку времени обновления
-	UpdateAt() ATime
+	UpdateAt() mKa.ATime
 	// Comment -- возвращает комментарий значения
 	Comment() string
 }
 
-// ILocalCtx -- локальный контекст
+// ILocalCtx -- локальный контекст.
 type ILocalCtx interface {
 	IRWMutex
 	// Get -- извлекает значение из контекста

+ 7 - 7
v4/lev0/ktypes/ilog_buf.go

@@ -1,13 +1,13 @@
 package ktypes
 
 import (
-	. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/kalias"
+	mKa "gitp78su.ipnodns.ru/svi/kern/v4/lev0/kalias"
 )
 
-// ILogMsg -- сообщение лога
+// ILogMsg -- сообщение лога.
 type ILogMsg interface {
 	// CreateAt -- когда создано
-	CreateAt() ATime
+	CreateAt() mKa.ATime
 	// Level -- уровень сообщения
 	Level() string
 	// Msg -- текст сообщения
@@ -16,15 +16,15 @@ type ILogMsg interface {
 	String() string
 }
 
-// ILogBus -- публикует в топики логи
+// ILogBus -- публикует в топики логи.
 type ILogBus interface {
 	// DebugAdd -- добавляет топик для отладочного сообщения
-	DebugAdd(topic ATopic, bus IBusClient) IResult[bool]
+	DebugAdd(topic mKa.ATopic, bus IBusClient) IResult[bool]
 }
 
-// ILogBuf -- буферизованный лог для диагностики
+// ILogBuf -- буферизованный лог для диагностики.
 //
-//	Буфер для Error -- отдельный
+//	Буфер для Error -- отдельный.
 type ILogBuf interface {
 	// Debug -- сообщение отладки
 	Debug(fMsg string, args ...any)

+ 1 - 1
v4/lev0/ktypes/imodule_stat.go

@@ -1,6 +1,6 @@
 package ktypes
 
-// IModuleStat -- статистика модуля
+// IModuleStat -- статистика модуля.
 type IModuleStat interface {
 	// SvgSec -- возвращает SVG с посекундным графиком за последнюю минуту
 	SvgSec() string

+ 1 - 1
v4/lev0/ktypes/ioption.go

@@ -1,6 +1,6 @@
 package ktypes
 
-// IOption -- интерфейс опции
+// IOption -- интерфейс опции.
 type IOption[T any] interface {
 	// IsVal - проверяет, есть ли значение
 	IsVal() bool

+ 1 - 1
v4/lev0/ktypes/irec_kv.go

@@ -1,6 +1,6 @@
 package ktypes
 
-// IRecKv -- интерфейс записи KV-хранилища
+// IRecKv -- интерфейс записи KV-хранилища.
 type IRecKv interface {
 	// Meta -- метаданные записи
 	Meta() IRecMeta

+ 1 - 1
v4/lev0/ktypes/irec_meta.go

@@ -2,7 +2,7 @@ package ktypes
 
 import "gitp78su.ipnodns.ru/svi/kern/v4/lev0/kalias"
 
-// IRecMeta -- интерфейс мета-информации записи KV-хранилища
+// IRecMeta -- интерфейс мета-информации записи KV-хранилища.
 type IRecMeta interface {
 	// Key -- ключ записи
 	Key() kalias.AKey

+ 1 - 1
v4/lev0/ktypes/irec_val.go

@@ -2,7 +2,7 @@ package ktypes
 
 import "gitp78su.ipnodns.ru/svi/kern/v4/lev0/kalias"
 
-// IRecVal -- значение записи
+// IRecVal -- значение записи.
 type IRecVal interface {
 	// Key -- возвращает ключ
 	Key() kalias.AKey

+ 1 - 1
v4/lev0/ktypes/iresult.go

@@ -1,6 +1,6 @@
 package ktypes
 
-// IResult -- интерфейс результата
+// IResult -- интерфейс результата.
 type IResult[T any] interface {
 	// IsOk -- возвращает true, если Result содержит значение
 	IsOk() bool

+ 1 - 1
v4/lev0/ktypes/irw_mutex.go

@@ -1,6 +1,6 @@
 package ktypes
 
-// IRWMutex -- интерфейс RW-мьютекса
+// IRWMutex -- интерфейс RW-мьютекса.
 type IRWMutex interface {
 	// Lock -- блокирует контекст ядра
 	Lock()

+ 1 - 1
v4/lev0/ktypes/isafe_bool.go

@@ -1,6 +1,6 @@
 package ktypes
 
-// ISafeBool -- интерфейс к потокобезопасной переменной
+// ISafeBool -- интерфейс к потокобезопасной переменной.
 type ISafeBool interface {
 	// Get -- возвращает хранимое значение потокобезопасной переменной
 	Get() bool

+ 1 - 1
v4/lev0/ktypes/isafe_bool_react.go

@@ -1,6 +1,6 @@
 package ktypes
 
-// ISafeBoolReact -- реактивный потокобезопасный булевый признак
+// ISafeBoolReact -- реактивный потокобезопасный булевый признак.
 type ISafeBoolReact interface {
 	ISafeBool
 	// Add -- добавляет функцию обратного вызова

+ 1 - 1
v4/lev0/ktypes/isafe_int.go

@@ -1,6 +1,6 @@
 package ktypes
 
-// ISafeInt -- интерфейс к потокобезопасной переменной
+// ISafeInt -- интерфейс к потокобезопасной переменной.
 type ISafeInt interface {
 	Int
 	// Lock -- захватывает переменную

+ 1 - 1
v4/lev0/ktypes/isafe_string.go

@@ -1,6 +1,6 @@
 package ktypes
 
-// ISafeString -- интерфейс к потокобезопасной переменной
+// ISafeString -- интерфейс к потокобезопасной переменной.
 type ISafeString interface {
 	// Get -- возвращает хранимое значение потокобезопасной переменной
 	Get() string

+ 2 - 2
v4/lev0/proton/neutron.go

@@ -1,6 +1,6 @@
-// package proton -- протон на основе кварка
+// package proton -- протон на основе кварка.
 package proton
 
-// Proton -- протон на основе кварка
+// Proton -- протон на основе кварка.
 type Proton struct {
 }

+ 12 - 12
v4/lev0/quark/contract/contract.go

@@ -1,22 +1,22 @@
-// package contract -- контракт каждого протона и нейтрона
+// package contract -- контракт каждого протона и нейтрона.
 package contract
 
 import (
 	"os"
 
-	. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/helpers"
+	mKh "gitp78su.ipnodns.ru/svi/kern/v4/lev0/helpers"
 )
 
-// isContractDisabled -- признак включённости контрактов
+// isContractDisabled -- признак включённости контрактов.
 // По умолчанию определяется переменной окружения IS_CONTRACT (любое непустое значение включает контракты).
 var isContractDisabled = os.Getenv("IS_CONTRACT") == ""
 
-// stage -- значение переменной окружения STAGE
+// stage -- значение переменной окружения STAGE.
 // Если STAGE != "prod", контракты всегда включены.
 var stage = os.Getenv("STAGE")
 
-// Contract -- контракт каждого протона и нейтрона
-// T -- тип контекста, передаваемого в пред-, ин- и постусловия
+// Contract -- контракт каждого протона и нейтрона.
+// T -- тип контекста, передаваемого в пред-, ин- и постусловия.
 type Contract struct {
 	// fnPre -- предусловие: должно быть истинно перед выполнением операции
 	fnPre func()
@@ -24,24 +24,24 @@ type Contract struct {
 	fnPost func()
 }
 
-// ContractOpt -- опция для настройки контракта
+// ContractOpt -- опция для настройки контракта.
 type ContractOpt func(*Contract)
 
-// ContractOptPre -- задать предусловие
+// ContractOptPre -- задать предусловие.
 func ContractOptPre(fn func()) ContractOpt {
 	return func(sf *Contract) {
 		sf.fnPre = fn
 	}
 }
 
-// ContractOptPost -- задать постусловие
+// ContractOptPost -- задать постусловие.
 func ContractOptPost(fn func()) ContractOpt {
 	return func(sf *Contract) {
 		sf.fnPost = fn
 	}
 }
 
-// NewContract -- создать новый контракт с опциями
+// NewContract -- создать новый контракт с опциями.
 func NewContract(opts ...ContractOpt) *Contract {
 	sf := &Contract{}
 	for _, opt := range opts {
@@ -50,11 +50,11 @@ func NewContract(opts ...ContractOpt) *Contract {
 	return sf
 }
 
-// Wrap -- оборачивает произвольную функцию выполнением контракта
+// Wrap -- оборачивает произвольную функцию выполнением контракта.
 // Схема вызова: Pre(ctx) -> fn(ctx) -> Post(ctx).
 // Если соответствующее условие не задано, оно пропускается.
 func (sf *Contract) Wrap(fn func()) func() {
-	Hassert(fn != nil, "Contract[T].Wrap(): fn==nil")
+	mKh.Hassert(fn != nil, "Contract[T].Wrap(): fn==nil")
 	// В непроизводственных окружениях (STAGE != "prod") всегда оборачиваем
 	if stage == "prod" && isContractDisabled {
 		// В prod оборачиваем только если явно включены контракты

+ 14 - 14
v4/lev0/quark/quark_base/quark_base.go

@@ -1,68 +1,68 @@
-// package quark_base -- базовый кварк
+// package quark_base -- базовый кварк.
 package quark_base
 
 import (
-	. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/helpers"
+	mKh "gitp78su.ipnodns.ru/svi/kern/v4/lev0/helpers"
 	"gitp78su.ipnodns.ru/svi/kern/v4/lev0/quark/quark_val"
 )
 
-// QBase -- базовый кварк
+// QBase -- базовый кварк.
 type QBase[M quark_val.CMod, T any] struct {
 	mass int                    // Масса кварка
 	val  *quark_val.Field[M, T] // хранимое значение
 }
 
-// QBaseOpt -- опции для базового кварка
+// QBaseOpt -- опции для базового кварка.
 type QBaseOpt[M quark_val.CMod, T any] func(qBase *QBase[M, T])
 
-// QBaseOptMass -- опция для массы кварка
+// QBaseOptMass -- опция для массы кварка.
 func QBaseOptMass[M quark_val.CMod, T any](mass int) QBaseOpt[M, T] {
 	return func(sf *QBase[M, T]) {
 		sf.mass = mass
 	}
 }
 
-// QBaseOptVal -- опция для значения кварка
+// QBaseOptVal -- опция для значения кварка.
 func QBaseOptVal[M quark_val.Fix, T any](val T) QBaseOpt[quark_val.Fix, T] {
 	return func(qBase *QBase[quark_val.Fix, T]) {
 		qBase.val = quark_val.NewField(val)
 	}
 }
 
-// QBaseOptValMut -- опция для изменяемого значения кварка
+// QBaseOptValMut -- опция для изменяемого значения кварка.
 func QBaseOptValMut[M quark_val.Mut, T any](val T) QBaseOpt[quark_val.Mut, T] {
 	return func(sf *QBase[quark_val.Mut, T]) {
 		sf.val = quark_val.NewFieldMut(val)
 	}
 }
 
-// NewQBase -- создать новый фиксированный базовый кварк
+// NewQBase -- создать новый фиксированный базовый кварк.
 func NewQBase[M quark_val.Fix, T any](opts ...QBaseOpt[M, T]) *QBase[M, T] {
 	sf := &QBase[M, T]{}
 	for _, opt := range opts {
 		opt(sf)
 	}
-	Hassert(sf.mass > 0, "NewQBase(): нулевая масса запрещена!")
-	Hassert(sf.val != nil, "NewQBase(): значение не создано")
+	mKh.Hassert(sf.mass > 0, "NewQBase(): нулевая масса запрещена!")
+	mKh.Hassert(sf.val != nil, "NewQBase(): значение не создано")
 	return sf
 }
 
-// NewQBaseMut -- создать новый мутабельный базовый кварк
+// NewQBaseMut -- создать новый мутабельный базовый кварк.
 func NewQBaseMut[M quark_val.Mut, T any](opts ...QBaseOpt[M, T]) *QBase[M, T] {
 	sf := &QBase[M, T]{}
 	for _, opt := range opts {
 		opt(sf)
 	}
-	Hassert(sf.mass > 0, "NewQBase(): нулевая масса запрещена!")
+	mKh.Hassert(sf.mass > 0, "NewQBase(): нулевая масса запрещена!")
 	return sf
 }
 
-// Mass -- получить массу кварка
+// Mass -- получить массу кварка.
 func (sf *QBase[M, T]) Mass() int {
 	return sf.mass
 }
 
-// Val -- возвращает хранимое значение
+// Val -- возвращает хранимое значение.
 func (sf *QBase[M, T]) Val() *quark_val.Field[M, T] {
 	return sf.val
 }

+ 3 - 3
v4/lev0/quark/quark_base/quark_base_test.go

@@ -19,7 +19,7 @@ func TestQuarkBase(t *testing.T) {
 	sf.newMass()
 }
 
-// Создаёт новый базовый кварк
+// Создаёт новый базовый кварк.
 func (sf *tester) new() {
 	sf.t.Log("new")
 	optMass := QBaseOptMass[quark_val.Fix, int](1)
@@ -30,7 +30,7 @@ func (sf *tester) new() {
 	}
 }
 
-// Создаёт мутировавший базовый кварк
+// Создаёт мутировавший базовый кварк.
 func (sf *tester) newMut() {
 	sf.t.Log("newMut")
 	optMass := QBaseOptMass[quark_val.Mut, string](10)
@@ -42,7 +42,7 @@ func (sf *tester) newMut() {
 	quark_val.Set(qb.Val(), "test_new")
 }
 
-// Создаёт базовый кварк с заданной массой
+// Создаёт базовый кварк с заданной массой.
 func (sf *tester) newMass() {
 	sf.t.Log("newMass")
 	const wantMass = 42

+ 6 - 6
v4/lev0/quark/quark_bool/quark_bool.go

@@ -1,4 +1,4 @@
-// package quark_bool -- кварк булево
+// package quark_bool -- кварк булево.
 package quark_bool
 
 import (
@@ -6,12 +6,12 @@ import (
 	"gitp78su.ipnodns.ru/svi/kern/v4/lev0/quark/quark_val"
 )
 
-// QBool -- кварк булево (типизированный модификатором базового кварка)
+// QBool -- кварк булево (типизированный модификатором базового кварка).
 type QBool[M quark_val.CMod] struct {
 	*quark_base.QBase[M, bool] // базовый кварк
 }
 
-// NewQBool -- создать фиксированный кварк булево
+// NewQBool -- создать фиксированный кварк булево.
 func NewQBool(val bool) *QBool[quark_val.Fix] {
 	optMass := quark_base.QBaseOptMass[quark_val.Fix, bool](1)
 	optVal := quark_base.QBaseOptVal(val)
@@ -21,7 +21,7 @@ func NewQBool(val bool) *QBool[quark_val.Fix] {
 	return sf
 }
 
-// NewQBoolMut -- создать мутируемый кварк булево
+// NewQBoolMut -- создать мутируемый кварк булево.
 func NewQBoolMut(val bool) *QBool[quark_val.Mut] {
 	optMass := quark_base.QBaseOptMass[quark_val.Mut, bool](1)
 	optVal := quark_base.QBaseOptValMut(val)
@@ -31,12 +31,12 @@ func NewQBoolMut(val bool) *QBool[quark_val.Mut] {
 	return sf
 }
 
-// Get -- Возвращает хранимое значение
+// Get -- Возвращает хранимое значение.
 func (sf *QBool[M]) Get() bool {
 	return sf.Val().Get()
 }
 
-// Set -- устанавливает хранимое значение
+// Set -- устанавливает хранимое значение.
 func Set(sf *QBool[quark_val.Mut], val bool) {
 	quark_val.Set(sf.Val(), val)
 }

+ 3 - 3
v4/lev0/quark/quark_bool/quark_bool_test.go

@@ -17,7 +17,7 @@ func TestQBool(t *testing.T) {
 	sf.setValue()
 }
 
-// Создаёт булевый кварк со значением true и мутацией
+// Создаёт булевый кварк со значением true и мутацией.
 func (sf *tester) newTrueMut() {
 	sf.t.Log("создание булевого кварка: true, мутировавший")
 	qb := NewQBoolMut(true)
@@ -32,7 +32,7 @@ func (sf *tester) newTrueMut() {
 	}
 }
 
-// Создаёт булевый кварк со значением false без мутации
+// Создаёт булевый кварк со значением false без мутации.
 func (sf *tester) newFalseNotMut() {
 	sf.t.Log("создание булевого кварка: false, без мутации")
 	qb := NewQBool(false)
@@ -47,7 +47,7 @@ func (sf *tester) newFalseNotMut() {
 	}
 }
 
-// Проверяет установку значения через Set
+// Проверяет установку значения через Set.
 func (sf *tester) setValue() {
 	sf.t.Log("setValue")
 	// Для изменения значения кварк должен быть мутируемым (isMut = true)

+ 13 - 13
v4/lev0/quark/quark_byte/quark_byte.go

@@ -1,21 +1,21 @@
-// package quark_byte -- кварк байт
+// package quark_byte -- кварк байт.
 package quark_byte
 
 import (
 	"fmt"
 	"strconv"
 
-	. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/helpers"
+	mKh "gitp78su.ipnodns.ru/svi/kern/v4/lev0/helpers"
 	"gitp78su.ipnodns.ru/svi/kern/v4/lev0/quark/quark_base"
 	"gitp78su.ipnodns.ru/svi/kern/v4/lev0/quark/quark_val"
 )
 
-// QByte -- кварк байт
+// QByte -- кварк байт.
 type QByte[M quark_val.CMod] struct {
 	*quark_base.QBase[M, byte] // базовый кварк
 }
 
-// NewQByte -- создать фиксированный кварк байт
+// NewQByte -- создать фиксированный кварк байт.
 func NewQByte(val byte) *QByte[quark_val.Fix] {
 	optMass := quark_base.QBaseOptMass[quark_val.Fix, byte](1)
 	optVal := quark_base.QBaseOptVal(val)
@@ -25,7 +25,7 @@ func NewQByte(val byte) *QByte[quark_val.Fix] {
 	return sf
 }
 
-// NewQByteMut -- создать мутируемый кварк байт
+// NewQByteMut -- создать мутируемый кварк байт.
 func NewQByteMut(val byte) *QByte[quark_val.Mut] {
 	optMass := quark_base.QBaseOptMass[quark_val.Mut, byte](1)
 	optVal := quark_base.QBaseOptValMut(val)
@@ -35,36 +35,36 @@ func NewQByteMut(val byte) *QByte[quark_val.Mut] {
 	return sf
 }
 
-// Get -- получить значение
+// Get -- получить значение.
 func (sf *QByte[T]) Get() byte {
 	return sf.Val().Get()
 }
 
-// Set -- установить значение
+// Set -- установить значение.
 func Set(sf *QByte[quark_val.Mut], val byte) {
 	quark_val.Set(sf.Val(), val)
 }
 
-// ToInt -- представить значение как int
+// ToInt -- представить значение как int.
 func (sf *QByte[T]) ToInt() int {
 	return int(sf.Val().Get())
 }
 
-// ToStr -- представить значение как строку из одного байта
+// ToStr -- представить значение как строку из одного байта.
 func (sf *QByte[T]) ToStr() string {
 	return fmt.Sprint(sf.Val().Get())
 }
 
-// FromInt -- установить значение из int
+// FromInt -- установить значение из int.
 func FromInt(sf *QByte[quark_val.Mut], v int) {
-	Hassert(v >= 0 && v <= 255, "QByte.FromInt(): значение вне диапазона байта")
+	mKh.Hassert(v >= 0 && v <= 255, "QByte.FromInt(): значение вне диапазона байта")
 	quark_val.Set(sf.Val(), byte(v))
 }
 
-// FromStr -- установить значение из строки (как из целого числа)
+// FromStr -- установить значение из строки (как из целого числа).
 func FromStr(sf *QByte[quark_val.Mut], s string) {
 	// Конвертируем строку в int и используем FromInt для всех проверок
 	v, err := strconv.Atoi(s)
-	Hassert(err == nil, "QByte.FromStr(): не удалось преобразовать строку в int, err=\n\t%v", err)
+	mKh.Hassert(err == nil, "QByte.FromStr(): не удалось преобразовать строку в int, err=\n\t%v", err)
 	FromInt(sf, v)
 }

+ 4 - 4
v4/lev0/quark/quark_byte/quark_byte_test.go

@@ -18,7 +18,7 @@ func TestQByte(t *testing.T) {
 	sf.convertStr()
 }
 
-// Создаёт мутируемый кварк байта и проверяет базовые свойства
+// Создаёт мутируемый кварк байта и проверяет базовые свойства.
 func (sf *tester) newMut() {
 	sf.t.Log("newMut")
 	const wantVal byte = 42
@@ -42,7 +42,7 @@ func (sf *tester) newMut() {
 	}
 }
 
-// Создаёт  кварк байта и проверяет базовые свойства (без изменения значения)
+// Создаёт  кварк байта и проверяет базовые свойства (без изменения значения).
 func (sf *tester) newFix() {
 	sf.t.Log("newFix")
 	const wantVal byte = 10
@@ -59,7 +59,7 @@ func (sf *tester) newFix() {
 	}
 }
 
-// Проверяет преобразование в/из int
+// Проверяет преобразование в/из int.
 func (sf *tester) convertInt() {
 	sf.t.Log("convertInt")
 
@@ -80,7 +80,7 @@ func (sf *tester) convertInt() {
 	}
 }
 
-// Проверяет преобразование в/из строки
+// Проверяет преобразование в/из строки.
 func (sf *tester) convertStr() {
 	sf.t.Log("проверка преобразования в/из строки")
 

+ 10 - 10
v4/lev0/quark/quark_float/quark_float.go

@@ -1,21 +1,21 @@
-// package quark_float -- кварк вещественное
+// package quark_float -- кварк вещественное.
 package quark_float
 
 import (
 	"fmt"
 	"strconv"
 
-	. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/helpers"
+	mKh "gitp78su.ipnodns.ru/svi/kern/v4/lev0/helpers"
 	"gitp78su.ipnodns.ru/svi/kern/v4/lev0/quark/quark_base"
 	"gitp78su.ipnodns.ru/svi/kern/v4/lev0/quark/quark_val"
 )
 
-// QFloat -- кварк вещественное
+// QFloat -- кварк вещественное.
 type QFloat[M quark_val.CMod] struct {
 	*quark_base.QBase[M, float64]
 }
 
-// NewQFloat -- создание фиксированного кварка вещественное
+// NewQFloat -- создание фиксированного кварка вещественное.
 func NewQFloat(val float64) *QFloat[quark_val.Fix] {
 	optMass := quark_base.QBaseOptMass[quark_val.Fix, float64](8)
 	optVal := quark_base.QBaseOptVal(val)
@@ -25,7 +25,7 @@ func NewQFloat(val float64) *QFloat[quark_val.Fix] {
 	return sf
 }
 
-// NewQFloatMut -- создание мутабельного кварка вещественное
+// NewQFloatMut -- создание мутабельного кварка вещественное.
 func NewQFloatMut(val float64) *QFloat[quark_val.Mut] {
 	optMass := quark_base.QBaseOptMass[quark_val.Mut, float64](8)
 	optVal := quark_base.QBaseOptValMut(val)
@@ -35,24 +35,24 @@ func NewQFloatMut(val float64) *QFloat[quark_val.Mut] {
 	return sf
 }
 
-// Get -- возвращает хранимое значение
+// Get -- возвращает хранимое значение.
 func (sf *QFloat[M]) Get() float64 {
 	return sf.Val().Get()
 }
 
-// Set -- устанавливает хранимое значение
+// Set -- устанавливает хранимое значение.
 func Set(sf *QFloat[quark_val.Mut], val float64) {
 	quark_val.Set(sf.Val(), val)
 }
 
-// FromStr -- устанавливает из строки
+// FromStr -- устанавливает из строки.
 func FromStr(sf *QFloat[quark_val.Mut], str string) {
 	fVal, err := strconv.ParseFloat(str, 64)
-	Hassert(err == nil, "QFloat.FromStr(): str=%q, err=\n\t%v", str, err)
+	mKh.Hassert(err == nil, "QFloat.FromStr(): str=%q, err=\n\t%v", str, err)
 	quark_val.Set(sf.Val(), fVal)
 }
 
-// ToStr -- конвертирует в строку
+// ToStr -- конвертирует в строку.
 func (sf *QFloat[M]) ToStr() string {
 	return fmt.Sprint(sf.Get())
 }

+ 2 - 2
v4/lev0/quark/quark_float/quark_float_test.go

@@ -14,7 +14,7 @@ func TestQuarkFloat(t *testing.T) {
 	sf.newMut()
 }
 
-// Новое мутабельное значение
+// Новое мутабельное значение.
 func (sf *tester) newMut() {
 	sf.t.Log("newMut")
 	qf := NewQFloatMut(123.456)
@@ -34,7 +34,7 @@ func (sf *tester) newMut() {
 	}
 }
 
-// Новое фиксированное значение
+// Новое фиксированное значение.
 func (sf *tester) new() {
 	sf.t.Log("new")
 	qf := NewQFloat(123.456)

+ 9 - 9
v4/lev0/quark/quark_int/quark_int.go

@@ -1,20 +1,20 @@
-// package quark_int -- кварк целое
+// package quark_int -- кварк целое.
 package quark_int
 
 import (
 	"strconv"
 
-	. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/helpers"
+	mKh "gitp78su.ipnodns.ru/svi/kern/v4/lev0/helpers"
 	"gitp78su.ipnodns.ru/svi/kern/v4/lev0/quark/quark_base"
 	"gitp78su.ipnodns.ru/svi/kern/v4/lev0/quark/quark_val"
 )
 
-// QInt -- кварк целое
+// QInt -- кварк целое.
 type QInt[M quark_val.CMod] struct {
 	*quark_base.QBase[M, int]
 }
 
-// NewQInt -- создать новый фиксированный кварк целое
+// NewQInt -- создать новый фиксированный кварк целое.
 func NewQInt(v int) *QInt[quark_val.Fix] {
 	optMass := quark_base.QBaseOptMass[quark_val.Fix, int](8)
 	optVal := quark_base.QBaseOptVal(v)
@@ -24,7 +24,7 @@ func NewQInt(v int) *QInt[quark_val.Fix] {
 	return sf
 }
 
-// NewQIntMut -- создать новый изменяемый кварк целое
+// NewQIntMut -- создать новый изменяемый кварк целое.
 func NewQIntMut(v int) *QInt[quark_val.Mut] {
 	optMass := quark_base.QBaseOptMass[quark_val.Mut, int](8)
 	optVal := quark_base.QBaseOptValMut(v)
@@ -34,20 +34,20 @@ func NewQIntMut(v int) *QInt[quark_val.Mut] {
 	return sf
 }
 
-// Get -- возвращает хранимое значение
+// Get -- возвращает хранимое значение.
 func (sf *QInt[M]) Get() int {
 	return sf.Val().Get()
 }
 
-// Set -- установить значение
+// Set -- установить значение.
 func Set(sf *QInt[quark_val.Mut], v int) {
 	quark_val.Set(sf.Val(), v)
 }
 
-// FromStr -- установить значение из строки
+// FromStr -- установить значение из строки.
 func FromStr(sf *QInt[quark_val.Mut], s string) {
 	iVal, err := strconv.Atoi(s)
-	Hassert(err == nil, "QInt.FromStr(): не удалось преобразовать строку(%v) в int, err=\n\t%v",
+	mKh.Hassert(err == nil, "QInt.FromStr(): не удалось преобразовать строку(%v) в int, err=\n\t%v",
 		s, err)
 	quark_val.Set(sf.Val(), iVal)
 }

+ 2 - 2
v4/lev0/quark/quark_int/quark_int_test.go

@@ -14,7 +14,7 @@ func TestQuarkInt(t *testing.T) {
 	sf.newMut()
 }
 
-// Новое мутабельное целое
+// Новое мутабельное целое.
 func (sf *tester) newMut() {
 	sf.t.Log("newMut")
 	qi := NewQIntMut(100)
@@ -31,7 +31,7 @@ func (sf *tester) newMut() {
 	}
 }
 
-// Новое фиксированное целое
+// Новое фиксированное целое.
 func (sf *tester) new() {
 	sf.t.Log("new")
 	qi := NewQInt(100)

+ 6 - 6
v4/lev0/quark/quark_str/quark_str.go

@@ -1,4 +1,4 @@
-// package quark_str -- кварк строки
+// package quark_str -- кварк строки.
 package quark_str
 
 import (
@@ -6,12 +6,12 @@ import (
 	"gitp78su.ipnodns.ru/svi/kern/v4/lev0/quark/quark_val"
 )
 
-// QStr -- кварк строки
+// QStr -- кварк строки.
 type QStr[M quark_val.CMod] struct {
 	*quark_base.QBase[M, string]
 }
 
-// NewQStr -- создает фиксированную новую кварк строку
+// NewQStr -- создает фиксированную новую кварк строку.
 func NewQStr(val string) *QStr[quark_val.Fix] {
 	optMass := quark_base.QBaseOptMass[quark_val.Fix, string](len(val))
 	optVal := quark_base.QBaseOptVal(val)
@@ -21,7 +21,7 @@ func NewQStr(val string) *QStr[quark_val.Fix] {
 	return sf
 }
 
-// NewQStrMut -- создает мутабельную новую кварк строку
+// NewQStrMut -- создает мутабельную новую кварк строку.
 func NewQStrMut(val string) *QStr[quark_val.Mut] {
 	optMass := quark_base.QBaseOptMass[quark_val.Mut, string](len(val))
 	optVal := quark_base.QBaseOptValMut(val)
@@ -31,12 +31,12 @@ func NewQStrMut(val string) *QStr[quark_val.Mut] {
 	return sf
 }
 
-// Get -- возвращает хранимое значение
+// Get -- возвращает хранимое значение.
 func (sf *QStr[M]) Get() string {
 	return sf.Val().Get()
 }
 
-// Set -- устанавливает хранимое значение
+// Set -- устанавливает хранимое значение.
 func Set(sf *QStr[quark_val.Mut], val string) {
 	quark_val.Set(sf.Val(), val)
 }

+ 2 - 2
v4/lev0/quark/quark_str/quark_str_test.go

@@ -14,7 +14,7 @@ func TestQStr(t *testing.T) {
 	sf.newMut()
 }
 
-// Создание строки с мутацией
+// Создание строки с мутацией.
 func (sf *tester) newMut() {
 	sf.t.Log("newMut")
 	qs := NewQStrMut("test")
@@ -24,7 +24,7 @@ func (sf *tester) newMut() {
 	}
 }
 
-// Создание неизменяемой строки
+// Создание неизменяемой строки.
 func (sf *tester) new() {
 	sf.t.Log("new")
 	qs := NewQStr("test")

+ 9 - 9
v4/lev0/quark/quark_val/quark_val.go

@@ -1,23 +1,23 @@
-// package quark_val -- кварк значения
+// package quark_val -- кварк значения.
 package quark_val
 
-// Fix -- фиксированное значение
+// Fix -- фиксированное значение.
 type Fix struct{}
 
-// Mut -- изменяемое значение
+// Mut -- изменяемое значение.
 type Mut struct{}
 
-// CMod -- ограничитель модификации
+// CMod -- ограничитель модификации.
 type CMod interface {
 	Fix | Mut
 }
 
-// Field -- кварк поля
+// Field -- кварк поля.
 type Field[M CMod, T any] struct {
 	val T // Значение поля
 }
 
-// NewField -- возвращает новое фиксированное значение
+// NewField -- возвращает новое фиксированное значение.
 func NewField[T any](val T) *Field[Fix, T] {
 	sf := &Field[Fix, T]{
 		val: val,
@@ -25,7 +25,7 @@ func NewField[T any](val T) *Field[Fix, T] {
 	return sf
 }
 
-// NewFieldMut -- возвращает новое мутабельное значение
+// NewFieldMut -- возвращает новое мутабельное значение.
 func NewFieldMut[T any](val T) *Field[Mut, T] {
 	sf := &Field[Mut, T]{
 		val: val,
@@ -33,12 +33,12 @@ func NewFieldMut[T any](val T) *Field[Mut, T] {
 	return sf
 }
 
-// Получить значение поля
+// Получить значение поля.
 func (sf *Field[M, T]) Get() T {
 	return sf.val
 }
 
-// Set -- установить мутабельное значение
+// Set -- установить мутабельное значение.
 func Set[T any](sf *Field[Mut, T], val T) {
 	sf.val = val
 }

+ 2 - 2
v4/lev0/quark/quark_val/quark_val_test.go

@@ -14,7 +14,7 @@ func TestQuarkVal(t *testing.T) {
 	sf.newMut()
 }
 
-// Создание нового мутабельного значения
+// Создание нового мутабельного значения.
 func (sf *tester) newMut() {
 	sf.t.Log("newMut")
 	f := NewFieldMut(10)
@@ -30,7 +30,7 @@ func (sf *tester) newMut() {
 	}
 }
 
-// Создание нового фиксированного значения
+// Создание нового фиксированного значения.
 func (sf *tester) newFix() {
 	sf.t.Log("newFix")
 	f := NewField(10)

+ 18 - 18
v4/lev1/ctx_value/ctx_value.go

@@ -1,4 +1,4 @@
-// package ctx_value -- потокобезопасное значение локального контекста
+// package ctx_value -- потокобезопасное значение локального контекста.
 package ctx_value
 
 import (
@@ -6,26 +6,26 @@ import (
 	"sync"
 
 	"gitp78su.ipnodns.ru/svi/kern/v4/lev0/helpers"
-	. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/kalias"
-	. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/ktypes"
-	. "gitp78su.ipnodns.ru/svi/kern/v4/lev1/result"
+	mKa "gitp78su.ipnodns.ru/svi/kern/v4/lev0/kalias"
+	kt "gitp78su.ipnodns.ru/svi/kern/v4/lev0/ktypes"
+	mKr "gitp78su.ipnodns.ru/svi/kern/v4/lev1/result"
 )
 
-// CtxValue -- потокобезопасное значение локального контекста
+// CtxValue -- потокобезопасное значение локального контекста.
 type CtxValue struct {
 	sync.RWMutex
 	key       string
-	createAt  ATime
+	createAt  mKa.ATime
 	Val_      any
-	UpdateAt_ ATime
+	UpdateAt_ mKa.ATime
 	Comment_  string
 }
 
-// NewCtxValue -- возвращает новое потокобезопасное значение локального контекста
-func NewCtxValue(key string, val any, comment string) IResult[*CtxValue] {
+// NewCtxValue -- возвращает новое потокобезопасное значение локального контекста.
+func NewCtxValue(key string, val any, comment string) kt.IResult[*CtxValue] {
 	if key == "" {
 		err := fmt.Errorf("NewCtxValue(): key is empty")
-		return NewErr[*CtxValue](err)
+		return mKr.NewErr[*CtxValue](err)
 	}
 	sf := &CtxValue{
 		key:      key,
@@ -33,34 +33,34 @@ func NewCtxValue(key string, val any, comment string) IResult[*CtxValue] {
 		Val_:     val,
 		Comment_: comment,
 	}
-	return NewRes(sf)
+	return mKr.NewRes(sf)
 }
 
-// Key -- возвращает ключ значения
+// Key -- возвращает ключ значения.
 func (sf *CtxValue) Key() string {
 	return sf.key
 }
 
-// Val -- возвращает хранимое значение
+// Val -- возвращает хранимое значение.
 func (sf *CtxValue) Val() any {
 	sf.RLock()
 	defer sf.RUnlock()
 	return sf.Val_
 }
 
-// UpdateAt -- возвращает время обновления значения
-func (sf *CtxValue) UpdateAt() ATime {
+// UpdateAt -- возвращает время обновления значения.
+func (sf *CtxValue) UpdateAt() mKa.ATime {
 	sf.RLock()
 	defer sf.RUnlock()
 	return sf.UpdateAt_
 }
 
-// CreateAt -- возвращает время создания значения
-func (sf *CtxValue) CreateAt() ATime {
+// CreateAt -- возвращает время создания значения.
+func (sf *CtxValue) CreateAt() mKa.ATime {
 	return sf.createAt
 }
 
-// Comment -- возвращает комментарий значения
+// Comment -- возвращает комментарий значения.
 func (sf *CtxValue) Comment() string {
 	sf.RLock()
 	defer sf.RUnlock()

+ 1 - 1
v4/lev1/ctx_value/ctx_value_test.go

@@ -20,7 +20,7 @@ func TestCtxValue(t *testing.T) {
 	sf.new()
 }
 
-// Создаёт значение локального контекста
+// Создаёт значение локального контекста.
 func (sf *tester) new() {
 	sf.t.Log("new")
 	sf.val = NewCtxValue("test_key", 5, "test_value").Hassert("new()")

+ 13 - 13
v4/lev1/kbus_msg/msg_pub/msg_pub.go

@@ -1,31 +1,31 @@
-// package msg_pub -- сообщения публикации
+// package msg_pub -- сообщения публикации.
 package msg_pub
 
 import (
-	. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/helpers"
-	. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/kalias"
+	mKh "gitp78su.ipnodns.ru/svi/kern/v4/lev0/helpers"
+	mKa "gitp78su.ipnodns.ru/svi/kern/v4/lev0/kalias"
 )
 
-// PublishReq -- запрос на публикацию
+// PublishReq -- запрос на публикацию.
 type PublishReq struct {
-	Topic_  ATopic `json:"topic"`
-	Uuid_   string `json:"uuid"`
-	BinMsg_ []byte `json:"msg"`
+	Topic_  mKa.ATopic `json:"topic"`
+	Uuid_   string     `json:"uuid"`
+	BinMsg_ []byte     `json:"msg"`
 }
 
-// SelfCheck -- проверяет правильность своих полей
+// SelfCheck -- проверяет правильность своих полей.
 func (sf *PublishReq) SelfCheck() {
-	Hassert(sf.Topic_ != "", "PublishReq.SelfCheck(): topic is empty")
-	Hassert(sf.Uuid_ != "", "PublishReq.SelfCheck(): uuid is empty")
+	mKh.Hassert(sf.Topic_ != "", "PublishReq.SelfCheck(): topic is empty")
+	mKh.Hassert(sf.Uuid_ != "", "PublishReq.SelfCheck(): uuid is empty")
 }
 
-// PublishResp -- ответ на запрос публикации
+// PublishResp -- ответ на запрос публикации.
 type PublishResp struct {
 	Status_ string `json:"status"`
 	Uuid_   string `json:"uuid"`
 }
 
-// SelfCheck -- проверяет правильность своих полей
+// SelfCheck -- проверяет правильность своих полей.
 func (sf *PublishResp) SelfCheck() {
-	Hassert(sf.Status_ != "", "PublishResp.SelfCheck(): status is empty")
+	mKh.Hassert(sf.Status_ != "", "PublishResp.SelfCheck(): status is empty")
 }

+ 4 - 4
v4/lev1/kbus_msg/msg_pub/msg_pub_test.go

@@ -16,7 +16,7 @@ func TestPublishMsg(t *testing.T) {
 	sf.resp()
 }
 
-// Работа с ответом
+// Работа с ответом.
 func (sf *tester) resp() {
 	sf.t.Log("resp")
 	sf.respBad1()
@@ -26,7 +26,7 @@ func (sf *tester) resp() {
 	resp.SelfCheck()
 }
 
-// Кривые поля ответа
+// Кривые поля ответа.
 func (sf *tester) respBad1() {
 	sf.t.Log("respBad1")
 	defer func() {
@@ -38,7 +38,7 @@ func (sf *tester) respBad1() {
 	resp.SelfCheck()
 }
 
-// Работа с запросом
+// Работа с запросом.
 func (sf *tester) req() {
 	sf.t.Log("req")
 	sf.reqBad1()
@@ -50,7 +50,7 @@ func (sf *tester) req() {
 	req.SelfCheck()
 }
 
-// Кривые поля
+// Кривые поля.
 func (sf *tester) reqBad1() {
 	sf.t.Log("reqBad1")
 	defer func() {

+ 13 - 13
v4/lev1/kbus_msg/msg_serve/msg_serve.go

@@ -1,32 +1,32 @@
-// package msg_serve -- сообщения на обслуживание входящих запросов
+// package msg_serve -- сообщения на обслуживание входящих запросов.
 package msg_serve
 
 import (
-	. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/helpers"
-	. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/kalias"
+	mKh "gitp78su.ipnodns.ru/svi/kern/v4/lev0/helpers"
+	mKa "gitp78su.ipnodns.ru/svi/kern/v4/lev0/kalias"
 )
 
-// ServeReq -- входящий запрос на обслуживание
+// ServeReq -- входящий запрос на обслуживание.
 type ServeReq struct {
-	Topic_  ATopic `json:"topic"`
-	Uuid_   string `json:"uuid"`
-	BinReq_ []byte `json:"req"`
+	Topic_  mKa.ATopic `json:"topic"`
+	Uuid_   string     `json:"uuid"`
+	BinReq_ []byte     `json:"req"`
 }
 
-// SelfCheck -- проверяет структуру на правильность полей
+// SelfCheck -- проверяет структуру на правильность полей.
 func (sf *ServeReq) SelfCheck() {
-	Hassert(sf.Topic_ != "", "ServeReq.SelfCheck(): topic is empty")
-	Hassert(sf.Uuid_ != "", "ServeReq.SelfCheck(): uuid is empty")
+	mKh.Hassert(sf.Topic_ != "", "ServeReq.SelfCheck(): topic is empty")
+	mKh.Hassert(sf.Uuid_ != "", "ServeReq.SelfCheck(): uuid is empty")
 }
 
-// ServeResp -- ответ на входящий запрос
+// ServeResp -- ответ на входящий запрос.
 type ServeResp struct {
 	Status_  string `json:"status"`
 	Uuid_    string `json:"uuid"`
 	BinResp_ []byte `json:"resp"`
 }
 
-// SelfCheck -- проверяет правильность своих полей
+// SelfCheck -- проверяет правильность своих полей.
 func (sf *ServeResp) SelfCheck() {
-	Hassert(sf.Status_ != "", "ServeResp.SelfCheck(): status is empty")
+	mKh.Hassert(sf.Status_ != "", "ServeResp.SelfCheck(): status is empty")
 }

+ 4 - 4
v4/lev1/kbus_msg/msg_serve/msg_serve_test.go

@@ -16,7 +16,7 @@ func TestServeMsg(t *testing.T) {
 	sf.resp()
 }
 
-// Работа с ответом
+// Работа с ответом.
 func (sf *tester) resp() {
 	sf.t.Log("resp")
 	sf.respBad1()
@@ -26,7 +26,7 @@ func (sf *tester) resp() {
 	resp.SelfCheck()
 }
 
-// Кривые поля ответа
+// Кривые поля ответа.
 func (sf *tester) respBad1() {
 	sf.t.Log("respBad1")
 	defer func() {
@@ -38,7 +38,7 @@ func (sf *tester) respBad1() {
 	resp.SelfCheck()
 }
 
-// Работа с запросом
+// Работа с запросом.
 func (sf *tester) req() {
 	sf.t.Log("req")
 	sf.reqBad1()
@@ -50,7 +50,7 @@ func (sf *tester) req() {
 	req.SelfCheck()
 }
 
-// Кривые поля
+// Кривые поля.
 func (sf *tester) reqBad1() {
 	sf.t.Log("reqBad1")
 	defer func() {

+ 17 - 17
v4/lev1/kbus_msg/msg_sub/msg_sub.go

@@ -1,33 +1,33 @@
-// package msg_sub -- сообщения для подписки
+// package msg_sub -- сообщения для подписки.
 package msg_sub
 
 import (
-	. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/helpers"
-	. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/kalias"
+	mKh "gitp78su.ipnodns.ru/svi/kern/v4/lev0/helpers"
+	mKa "gitp78su.ipnodns.ru/svi/kern/v4/lev0/kalias"
 )
 
-// SubscribeReq -- входящий запрос на подписку
+// SubscribeReq -- входящий запрос на подписку.
 type SubscribeReq struct {
-	Topic_   ATopic `json:"topic"` // Топик, на который надо подписаться
-	Uuid_    string `json:"uuid"`
-	WebHook_ string `json:"web_hook"` // Веб-хук для обратного вызова
+	Topic_   mKa.ATopic `json:"topic"` // Топик, на который надо подписаться
+	Uuid_    string     `json:"uuid"`
+	WebHook_ string     `json:"web_hook"` // Веб-хук для обратного вызова
 }
 
-// SelfCheck -- проверяет поля на правильность
+// SelfCheck -- проверяет поля на правильность.
 func (sf *SubscribeReq) SelfCheck() {
-	Hassert(sf.Topic_ != "", "SubscribeReq.SelfCheck(): topic is empty")
-	Hassert(sf.Uuid_ != "", "SubscribeReq.SelfCheck(): uuid is empty")
-	Hassert(sf.WebHook_ != "", "SubscribeReq.SelfCheck(): WebHook_ is empty")
+	mKh.Hassert(sf.Topic_ != "", "SubscribeReq.SelfCheck(): topic is empty")
+	mKh.Hassert(sf.Uuid_ != "", "SubscribeReq.SelfCheck(): uuid is empty")
+	mKh.Hassert(sf.WebHook_ != "", "SubscribeReq.SelfCheck(): WebHook_ is empty")
 }
 
-// SubscribeResp -- ответ на запрос подписки
+// SubscribeResp -- ответ на запрос подписки.
 type SubscribeResp struct {
-	Status_ string       `json:"status"`
-	Uuid_   string       `json:"uuid"`
-	Name_   AHandlerName `json:"name"` // Уникальное имя подписки
+	Status_ string           `json:"status"`
+	Uuid_   string           `json:"uuid"`
+	Name_   mKa.AHandlerName `json:"name"` // Уникальное имя подписки
 }
 
-// SelfCheck -- проверяет правильность своих полей
+// SelfCheck -- проверяет правильность своих полей.
 func (sf *SubscribeResp) SelfCheck() {
-	Hassert(sf.Status_ != "", "SubscribeResp.SelfCheck(): status is empty")
+	mKh.Hassert(sf.Status_ != "", "SubscribeResp.SelfCheck(): status is empty")
 }

+ 4 - 4
v4/lev1/kbus_msg/msg_sub/msg_sub_test.go

@@ -16,7 +16,7 @@ func TestPublishMsg(t *testing.T) {
 	sf.resp()
 }
 
-// Работа с ответом
+// Работа с ответом.
 func (sf *tester) resp() {
 	sf.t.Log("resp")
 	sf.respBad1()
@@ -26,7 +26,7 @@ func (sf *tester) resp() {
 	resp.SelfCheck()
 }
 
-// Кривые поля ответа
+// Кривые поля ответа.
 func (sf *tester) respBad1() {
 	sf.t.Log("respBad1")
 	defer func() {
@@ -38,7 +38,7 @@ func (sf *tester) respBad1() {
 	resp.SelfCheck()
 }
 
-// Работа с запросом
+// Работа с запросом.
 func (sf *tester) req() {
 	sf.t.Log("req")
 	sf.reqBad1()
@@ -50,7 +50,7 @@ func (sf *tester) req() {
 	req.SelfCheck()
 }
 
-// Кривые поля
+// Кривые поля.
 func (sf *tester) reqBad1() {
 	sf.t.Log("reqBad1")
 	defer func() {

+ 12 - 12
v4/lev1/kbus_msg/msg_unsub/msg_unsub.go

@@ -1,30 +1,30 @@
-// package msg_unsub -- сообщения отписки
+// package msg_unsub -- сообщения отписки.
 package msg_unsub
 
 import (
-	. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/helpers"
-	. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/kalias"
+	mKh "gitp78su.ipnodns.ru/svi/kern/v4/lev0/helpers"
+	mKa "gitp78su.ipnodns.ru/svi/kern/v4/lev0/kalias"
 )
 
-// UnsubReq -- запрос на отписку от топика
+// UnsubReq -- запрос на отписку от топика.
 type UnsubReq struct {
-	Name_ AHandlerName `json:"name"` // Уникальная метка подписки
-	Uuid_ string       `json:"uuid"`
+	Name_ mKa.AHandlerName `json:"name"` // Уникальная метка подписки
+	Uuid_ string           `json:"uuid"`
 }
 
-// SelfCheck -- проверка запроса на правильность полей
+// SelfCheck -- проверка запроса на правильность полей.
 func (sf *UnsubReq) SelfCheck() {
-	Hassert(sf.Name_ != "", "UnsubReq.SelfCheck(): name is empty")
-	Hassert(sf.Uuid_ != "", "UnsubReq.SelfCheck(): uuid is empty")
+	mKh.Hassert(sf.Name_ != "", "UnsubReq.SelfCheck(): name is empty")
+	mKh.Hassert(sf.Uuid_ != "", "UnsubReq.SelfCheck(): uuid is empty")
 }
 
-// UnsubResp -- ответ на запрос отписки
+// UnsubResp -- ответ на запрос отписки.
 type UnsubResp struct {
 	Status_ string `json:"status"`
 	Uuid_   string `json:"uuid"`
 }
 
-// SelfCheck -- проверяет правильность своих полей
+// SelfCheck -- проверяет правильность своих полей.
 func (sf *UnsubResp) SelfCheck() {
-	Hassert(sf.Status_ != "", "UnsubResp.SelfCheck(): status is empty")
+	mKh.Hassert(sf.Status_ != "", "UnsubResp.SelfCheck(): status is empty")
 }

+ 4 - 4
v4/lev1/kbus_msg/msg_unsub/msg_unsub_test.go

@@ -16,7 +16,7 @@ func TestPublishMsg(t *testing.T) {
 	sf.resp()
 }
 
-// Работа с ответом
+// Работа с ответом.
 func (sf *tester) resp() {
 	sf.t.Log("resp")
 	sf.respBad1()
@@ -26,7 +26,7 @@ func (sf *tester) resp() {
 	resp.SelfCheck()
 }
 
-// Кривые поля ответа
+// Кривые поля ответа.
 func (sf *tester) respBad1() {
 	sf.t.Log("respBad1")
 	defer func() {
@@ -38,7 +38,7 @@ func (sf *tester) respBad1() {
 	resp.SelfCheck()
 }
 
-// Работа с запросом
+// Работа с запросом.
 func (sf *tester) req() {
 	sf.t.Log("req")
 	sf.reqBad1()
@@ -49,7 +49,7 @@ func (sf *tester) req() {
 	req.SelfCheck()
 }
 
-// Кривые поля
+// Кривые поля.
 func (sf *tester) reqBad1() {
 	sf.t.Log("reqBad1")
 	defer func() {

+ 28 - 28
v4/lev1/kint/kint.go

@@ -1,4 +1,4 @@
-// package kint -- целочисленная переменная ядра
+// package kint -- целочисленная переменная ядра.
 package kint
 
 import (
@@ -8,87 +8,87 @@ import (
 	"os"
 	"strconv"
 
-	. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/ktypes"
-	. "gitp78su.ipnodns.ru/svi/kern/v4/lev1/result"
+	mKt "gitp78su.ipnodns.ru/svi/kern/v4/lev0/ktypes"
+	mKr "gitp78su.ipnodns.ru/svi/kern/v4/lev1/result"
 )
 
-// Целочисленная переменная ядра
+// Целочисленная переменная ядра.
 type KernInt struct {
 	val int
 }
 
-// NewInt -- возвращает новое целое ядра
-func NewInt(val int) Int {
+// NewInt -- возвращает новое целое ядра.
+func NewInt(val int) mKt.Int {
 	sf := &KernInt{
 		val: val,
 	}
 	return sf
 }
 
-// Get -- возвращает хранимое значение потокобезопасной переменной
+// Get -- возвращает хранимое значение потокобезопасной переменной.
 func (sf *KernInt) Get() int {
 	return sf.val
 }
 
-// Set -- устанавливает хранимое потокобезопасное значение
+// Set -- устанавливает хранимое потокобезопасное значение.
 func (sf *KernInt) Set(val int) {
 	sf.val = val
 }
 
-// Inc -- увеличивает на единицу
+// Inc -- увеличивает на единицу.
 func (sf *KernInt) Inc() {
 	sf.val++
 }
 
-// Dec -- уменьшает на единицу
+// Dec -- уменьшает на единицу.
 func (sf *KernInt) Dec() {
 	sf.val--
 }
 
-// Reset -- сбрасывает хранимое потокобезопасное значение
+// Reset -- сбрасывает хранимое потокобезопасное значение.
 func (sf *KernInt) Reset() {
 	sf.val = 0
 }
 
-// FromStr -- устанавливает значение из строки
-func (sf *KernInt) FromStr(strVal string) IResult[int] {
+// FromStr -- устанавливает значение из строки.
+func (sf *KernInt) FromStr(strVal string) mKt.IResult[int] {
 	iVal, err := strconv.Atoi(strVal)
 	if err != nil {
-		return NewErr[int](fmt.Errorf("KInt.FromStr(): vak(%v) bad, err=\n\t%w", strVal, err))
+		return mKr.NewErr[int](fmt.Errorf("KInt.FromStr(): vak(%v) bad, err=\n\t%w", strVal, err))
 	}
 	sf.val = iVal
-	return NewRes(iVal)
+	return mKr.NewRes(iVal)
 }
 
-// ToStr -- возвращает как строку
+// ToStr -- возвращает как строку.
 func (sf *KernInt) ToStr() string {
 	return fmt.Sprint(sf.val)
 }
 
-// FromByte -- устанавливает значение из байтов (BigEndian, net order)
-func (sf *KernInt) FromByte(binData []byte) IResult[int] {
+// FromByte -- устанавливает значение из байтов (BigEndian, net order).
+func (sf *KernInt) FromByte(binData []byte) mKt.IResult[int] {
 	lenBin := len(binData)
 	if lenBin < 8 {
-		return NewErr[int](fmt.Errorf("KInt.FromByte(): len(%v) bytes shorts", lenBin))
+		return mKr.NewErr[int](fmt.Errorf("KInt.FromByte(): len(%v) bytes shorts", lenBin))
 	}
 	var signed int64
 	buf := bytes.NewReader(binData)
 	err := binary.Read(buf, binary.BigEndian, &signed)
 	if err != nil {
-		return NewErr[int](fmt.Errorf("KInt.FromByte(): in read []byte, err=\n\t%w", err))
+		return mKr.NewErr[int](fmt.Errorf("KInt.FromByte(): in read []byte, err=\n\t%w", err))
 	}
 	sf.val = int(signed)
-	return NewRes(sf.val)
+	return mKr.NewRes(sf.val)
 }
 
-// ToByte -- возвращает как срез байт
+// ToByte -- возвращает как срез байт.
 func (sf *KernInt) ToByte() []byte {
 	buf := make([]byte, 8)
 	binary.BigEndian.PutUint64(buf, uint64(sf.val))
 	return buf
 }
 
-// FromBool -- устанавливает значение из булева
+// FromBool -- устанавливает значение из булева.
 func (sf *KernInt) FromBool(isVal bool) int {
 	if isVal {
 		sf.val = -1
@@ -98,18 +98,18 @@ func (sf *KernInt) FromBool(isVal bool) int {
 	return 0
 }
 
-// ToBool -- возвращает как булево значение
+// ToBool -- возвращает как булево значение.
 func (sf *KernInt) ToBool() bool {
 	return sf.val != 0
 }
 
-// Getenv -- устанавливает значение из окружения
-func (sf *KernInt) Getenv(env string) IResult[int] {
+// Getenv -- устанавливает значение из окружения.
+func (sf *KernInt) Getenv(env string) mKt.IResult[int] {
 	strVal := os.Getenv(env)
 	res := sf.FromStr(strVal)
 	if res.IsErr() {
 		err := fmt.Errorf("safeInt.Getenv(): from env %v, err=\n\t%w", env, res.Err())
-		return NewErr[int](err)
+		return mKr.NewErr[int](err)
 	}
-	return NewRes(sf.val)
+	return mKr.NewRes(sf.val)
 }

+ 1 - 1
v4/lev1/kint/kint_test.go

@@ -18,7 +18,7 @@ func TestKInt(t *testing.T) {
 	sf.new()
 }
 
-// новый KInt
+// новый KInt.
 func (sf *tester) new() {
 	sf.t.Log("new")
 	val := NewInt(12)

+ 24 - 24
v4/lev1/lev1.go

@@ -1,4 +1,4 @@
-// package lev1 -- сборка уровня 1
+// package lev1 -- сборка уровня 1.
 package lev1
 
 import (
@@ -21,118 +21,118 @@ import (
 
 type IMockEnv = mock_env.IMockEnv
 
-// MakeEnv -- возвращает новое мок-окружение
+// MakeEnv -- возвращает новое мок-окружение.
 func MakeEnv() IMockEnv {
 	sf := mock_env.MakeEnv()
 	return sf
 }
 
-// OptionLogBuf -- опция для конфигурирования ILogBuf
+// OptionLogBuf -- опция для конфигурирования ILogBuf.
 type OptionLogBuf = log_buf.OptionLogBuf
 
-// OptPrefix -- устанавливает префикс в сообщениях
+// OptPrefix -- устанавливает префикс в сообщениях.
 func OptPrefix(prefix string) OptionLogBuf {
 	return log_buf.OptPrefix(prefix)
 }
 
-// OptIsTerm -- устанавливает признак вывода в терминал
+// OptIsTerm -- устанавливает признак вывода в терминал.
 func OptIsTerm(isTerm bool) OptionLogBuf {
 	return log_buf.OptIsTerm(isTerm)
 }
 
-// NewLogBuf -- возвращает новый буферизованный лог
+// NewLogBuf -- возвращает новый буферизованный лог.
 func NewLogBuf(opts ...log_buf.OptionLogBuf) ILogBuf {
 	log := log_buf.NewLogBuf(opts...)
 	return log
 }
 
-// NewSafeString -- возвращает новую потокобезопасную строку
+// NewSafeString -- возвращает новую потокобезопасную строку.
 func NewSafeString() ISafeString {
 	str := safe_string.NewSafeString()
 	return str
 }
 
-// NewSafeIntFromStr -- возвращает новое потокобезопасное целое из строки
+// NewSafeIntFromStr -- возвращает новое потокобезопасное целое из строки.
 func NewSafeIntFromStr(strVal string) IResult[ISafeInt] {
 	return safe_int.NewSafeIntFromStr(strVal)
 }
 
-// NewSafeIntGetenv -- возвращает новое потокобезопасное целое из окружения
+// NewSafeIntGetenv -- возвращает новое потокобезопасное целое из окружения.
 func NewSafeIntGetenv(env string) IResult[ISafeInt] {
 	return safe_int.NewSafeIntGetenv(env)
 }
 
-// NewSafeInt -- возвращает новую потокобезопасную целочисленную переменную
+// NewSafeInt -- возвращает новую потокобезопасную целочисленную переменную.
 func NewSafeInt(val int) ISafeInt {
 	val_ := safe_int.NewSafeInt(val)
 	return val_
 }
 
-// NewSafeBoolReact -- возвращает новую потокобезопасную реактивную булеву переменную
+// NewSafeBoolReact -- возвращает новую потокобезопасную реактивную булеву переменную.
 func NewSafeBoolReact() ISafeBoolReact {
 	val := safe_bool_react.NewSafeBoolReact()
 	return val
 }
 
-// NewSafeBool -- возвращает новый потокобезопасный булевый признак
+// NewSafeBool -- возвращает новый потокобезопасный булевый признак.
 func NewSafeBool() ISafeBool {
 	sb := safe_bool.NewSafeBool()
 	return sb
 }
 
-// NewRes -- возвращает успешный Result с значением
+// NewRes -- возвращает успешный Result с значением.
 func NewRes[T any](res T) IResult[T] {
 	return result.NewRes(res)
 }
 
-// NewErr -- возвращает Result с ошибкой
+// NewErr -- возвращает Result с ошибкой.
 func NewErr[T any](err error) IResult[T] {
 	return result.NewErr[T](err)
 }
 
-// WrapErr -- оборачивает существующий Result с ошибкой с новой ошибкой
+// WrapErr -- оборачивает существующий Result с ошибкой с новой ошибкой.
 func WrapErr[T any](res IResult[T], err error) IResult[T] {
 	return result.WrapErr(res, err)
 }
 
-// NewOpt -- возвращает новый не пустой результат операции
+// NewOpt -- возвращает новый не пустой результат операции.
 func NewOpt[T any](some T) IOption[T] {
 	return option.NewOpt(some)
 }
 
-// NewNone -- возвращает новый пустой результат операции
+// NewNone -- возвращает новый пустой результат операции.
 func NewNone[T any]() IOption[T] {
 	return option.NewNone[T]()
 }
 
-// FnHassert -- проверяет с жёстким падением условие
+// FnHassert -- проверяет с жёстким падением условие.
 type FnHassert = helpers.FnHassert
 
-// Hassert -- возвращает ссылку на функцию Hassert
+// Hassert -- возвращает ссылку на функцию Hassert.
 func Hassert() FnHassert {
 	return helpers.Hassert
 }
 
-// FnAssert -- проверка на правильность утверждения с падением в панику на локальном стенде (soft assert)
+// FnAssert -- проверка на правильность утверждения с падением в панику на локальном стенде (soft assert).
 type FnAssert = helpers.FnAssert
 
-// Assert -- возвращает ссылку на функцию Assert
+// Assert -- возвращает ссылку на функцию Assert.
 func Assert() FnAssert {
 	return helpers.Assert
 }
 
-// SleepMs -- спит миллисекунду
+// SleepMs -- спит миллисекунду.
 func SleepMs() {
 	helpers.SleepMs()
 }
 
-// NewInt -- возвращает новую целочисленную переменную
+// NewInt -- возвращает новую целочисленную переменную.
 func NewInt(val int) Int {
 	val_ := kint.NewInt(val)
 	return val_
 }
 
-// NewLocalCtx -- возвращает новый локальный контекст
+// NewLocalCtx -- возвращает новый локальный контекст.
 func NewLocalCtx(ctx context.Context) IResult[ILocalCtx] {
 	resCtx := local_ctx.NewLocalCtx(ctx)
 	if resCtx.IsErr() {

+ 12 - 12
v4/lev1/local_ctx/local_ctx.go

@@ -1,4 +1,4 @@
-// package local_ctx -- локальный контекст
+// package local_ctx -- локальный контекст.
 package local_ctx
 
 import (
@@ -15,7 +15,7 @@ import (
 	. "gitp78su.ipnodns.ru/svi/kern/v4/lev1/result"
 )
 
-// LocalCtx -- локальный контекст
+// LocalCtx -- локальный контекст.
 type LocalCtx struct {
 	sync.RWMutex
 	ctx      context.Context // Отменяемый контекст
@@ -26,7 +26,7 @@ type LocalCtx struct {
 	log     ILogBuf              // Локальный буфер
 }
 
-// NewLocalCtx -- возвращает новый локальный контекст
+// NewLocalCtx -- возвращает новый локальный контекст.
 func NewLocalCtx(ctx context.Context) IResult[*LocalCtx] {
 	if ctx == nil {
 		err := fmt.Errorf("NewLocalCtx(): ctx==nil")
@@ -44,29 +44,29 @@ func NewLocalCtx(ctx context.Context) IResult[*LocalCtx] {
 	return NewRes(sf)
 }
 
-// Ctx -- возвращает отменяемый контекст
+// Ctx -- возвращает отменяемый контекст.
 func (sf *LocalCtx) Ctx() context.Context {
 	return sf.ctx
 }
 
-// Size -- возвращает размер контекста
+// Size -- возвращает размер контекста.
 func (sf *LocalCtx) Size() int {
 	sf.RLock()
 	defer sf.RUnlock()
 	return len(sf.dictVal)
 }
 
-// SortedList -- возвращает сортированный список значений
+// SortedList -- возвращает сортированный список значений.
 func (sf *LocalCtx) SortedList() []ICtxValue {
 	return sf.lstSort.List()
 }
 
-// Log -- возвращает локальный буферный лог
+// Log -- возвращает локальный буферный лог.
 func (sf *LocalCtx) Log() ILogBuf {
 	return sf.log
 }
 
-// Get -- возвращает хранимое значение
+// Get -- возвращает хранимое значение.
 func (sf *LocalCtx) Get(key string) IOption[ICtxValue] {
 	sf.RLock()
 	defer sf.RUnlock()
@@ -81,7 +81,7 @@ func (sf *LocalCtx) Get(key string) IOption[ICtxValue] {
 	return NewOpt(val)
 }
 
-// Del -- удаляет значение из контекста
+// Del -- удаляет значение из контекста.
 func (sf *LocalCtx) Del(key string) {
 	sf.Lock()
 	defer sf.Unlock()
@@ -91,7 +91,7 @@ func (sf *LocalCtx) Del(key string) {
 	sf.lstSort.Del(val)
 }
 
-// Set -- добавляет значение в контекст
+// Set -- добавляет значение в контекст.
 func (sf *LocalCtx) Set(key string, val any, comment string) IResult[bool] {
 	sf.Lock()
 	defer sf.Unlock()
@@ -115,12 +115,12 @@ func (sf *LocalCtx) Set(key string, val any, comment string) IResult[bool] {
 	return NewRes(true)
 }
 
-// Wait -- блокирующий вызов ожидания отмены контекста
+// Wait -- блокирующий вызов ожидания отмены контекста.
 func (sf *LocalCtx) Wait() {
 	<-sf.ctx.Done()
 }
 
-// Cancel -- отменяет контекст
+// Cancel -- отменяет контекст.
 func (sf *LocalCtx) Cancel() {
 	sf.log.Warn("Cancel()")
 	sf.fnCancel()

+ 6 - 6
v4/lev1/local_ctx/local_ctx_test.go

@@ -21,7 +21,7 @@ func TestLocalCtx(t *testing.T) {
 	sf.done()
 }
 
-// Ожидает отмены контекста
+// Ожидает отмены контекста.
 func (sf *tester) done() {
 	sf.t.Log("done")
 	_ = sf.ctx.Size()
@@ -29,14 +29,14 @@ func (sf *tester) done() {
 	sf.ctx.Wait()
 }
 
-// Удаляет несуществующий ключ из локального контекста
+// Удаляет несуществующий ключ из локального контекста.
 func (sf *tester) del() {
 	sf.t.Log("del")
 	sf.ctx.Del("123")
 	sf.ctx.Del("count")
 }
 
-// Возвращает хранимое значение
+// Возвращает хранимое значение.
 func (sf *tester) get() {
 	sf.t.Log("get")
 	optRes := sf.ctx.Get("count")
@@ -47,14 +47,14 @@ func (sf *tester) get() {
 	}
 }
 
-// Устанавливает значение
+// Устанавливает значение.
 func (sf *tester) set() {
 	sf.t.Log("set")
 	sf.ctx.Set("count", 5, "test_val").Hassert("set()")
 	sf.ctx.Set("count", 15, "test_val1").Hassert("set()")
 }
 
-// Создание нового локального контекста
+// Создание нового локального контекста.
 func (sf *tester) new() {
 	sf.t.Log("new")
 	sf.newBad1()
@@ -74,7 +74,7 @@ func (sf *tester) newGood1() {
 	}
 }
 
-// Нет контекста ядра
+// Нет контекста ядра.
 func (sf *tester) newBad1() {
 	sf.t.Log("newBad1")
 	defer func() {

+ 17 - 17
v4/lev1/log_buf/log_buf.go

@@ -1,4 +1,4 @@
-// package log_buf -- потокобезопасный буфер лога
+// package log_buf -- потокобезопасный буфер лога.
 package log_buf
 
 import (
@@ -12,7 +12,7 @@ import (
 	"gitp78su.ipnodns.ru/svi/kern/v4/lev1/safe_bool"
 )
 
-// LogBuf -- потокобезопасный буфер лога
+// LogBuf -- потокобезопасный буфер лога.
 type LogBuf struct {
 	sync.RWMutex
 	isTerm ISafeBool // Признак вывода в стандартный поток
@@ -21,10 +21,10 @@ type LogBuf struct {
 	lstErr []ILogMsg
 }
 
-// OptionLogBuf -- опция для конфигурирования ILogBuf
+// OptionLogBuf -- опция для конфигурирования ILogBuf.
 type OptionLogBuf func(logBuf *LogBuf)
 
-// OptIsTerm -- устанавливает признак вывода в терминал
+// OptIsTerm -- устанавливает признак вывода в терминал.
 func OptIsTerm(isTerm bool) OptionLogBuf {
 	return func(sf *LogBuf) {
 		if isTerm {
@@ -33,14 +33,14 @@ func OptIsTerm(isTerm bool) OptionLogBuf {
 	}
 }
 
-// OptPrefix -- устанавливает префикс в сообщениях
+// OptPrefix -- устанавливает префикс в сообщениях.
 func OptPrefix(prefix string) OptionLogBuf {
 	return func(sf *LogBuf) {
 		sf.prefix = prefix + "."
 	}
 }
 
-// NewLogBuf -- возвращает новый потокобезопасный буфер лога
+// NewLogBuf -- возвращает новый потокобезопасный буфер лога.
 func NewLogBuf(opts ...OptionLogBuf) ILogBuf {
 	sf := &LogBuf{
 		isTerm: safe_bool.NewSafeBool(),
@@ -54,12 +54,12 @@ func NewLogBuf(opts ...OptionLogBuf) ILogBuf {
 	return sf
 }
 
-// IsTerm -- возвращает признак логирования
+// IsTerm -- возвращает признак логирования.
 func (sf *LogBuf) IsTerm() ISafeBool {
 	return sf.isTerm
 }
 
-// GetErr -- возвращает сообщение ошибки по номеру
+// GetErr -- возвращает сообщение ошибки по номеру.
 func (sf *LogBuf) GetErr(num int) ILogMsg {
 	sf.RLock()
 	defer sf.RUnlock()
@@ -75,7 +75,7 @@ func (sf *LogBuf) GetErr(num int) ILogMsg {
 	return sf.lstErr[num]
 }
 
-// Get -- возвращает сообщение по номеру
+// Get -- возвращает сообщение по номеру.
 func (sf *LogBuf) Get(num int) ILogMsg {
 	sf.RLock()
 	defer sf.RUnlock()
@@ -96,7 +96,7 @@ type tMsg struct {
 	args []any
 }
 
-// Debug -- сообщение отладки
+// Debug -- сообщение отладки.
 func (sf *LogBuf) Debug(fMsg string, args ...any) {
 	sf.Lock()
 	defer sf.Unlock()
@@ -111,7 +111,7 @@ func (sf *LogBuf) Debug(fMsg string, args ...any) {
 	sf.printTerm(_msg)
 }
 
-// Info -- информационные сообщения
+// Info -- информационные сообщения.
 func (sf *LogBuf) Info(fMsg string, args ...any) {
 	sf.Lock()
 	defer sf.Unlock()
@@ -126,7 +126,7 @@ func (sf *LogBuf) Info(fMsg string, args ...any) {
 	sf.printTerm(_msg)
 }
 
-// Warn -- предупреждающие сообщения
+// Warn -- предупреждающие сообщения.
 func (sf *LogBuf) Warn(fMsg string, args ...any) {
 	sf.Lock()
 	defer sf.Unlock()
@@ -141,7 +141,7 @@ func (sf *LogBuf) Warn(fMsg string, args ...any) {
 	sf.printTerm(_msg)
 }
 
-// Err -- сообщения об ошибках
+// Err -- сообщения об ошибках.
 func (sf *LogBuf) Err(fMsg string, args ...any) {
 	sf.Lock()
 	defer sf.Unlock()
@@ -158,28 +158,28 @@ func (sf *LogBuf) Err(fMsg string, args ...any) {
 	sf.printTerm(_msg)
 }
 
-// Size -- возвращает размер буфера
+// Size -- возвращает размер буфера.
 func (sf *LogBuf) Size() int {
 	sf.RLock()
 	defer sf.RUnlock()
 	return len(sf.lst)
 }
 
-// Проверяет длину общую лога
+// Проверяет длину общую лога.
 func (sf *LogBuf) checkLen() {
 	for len(sf.lst) > 100 {
 		sf.lst = sf.lst[1:]
 	}
 }
 
-// Проверяет длину лога ошибок
+// Проверяет длину лога ошибок.
 func (sf *LogBuf) checkLenErr() {
 	for len(sf.lstErr) > 100 {
 		sf.lstErr = sf.lstErr[1:]
 	}
 }
 
-// Печатает сообщение в терминал, если разрешено
+// Печатает сообщение в терминал, если разрешено.
 func (sf *LogBuf) printTerm(msg ILogMsg) {
 	if !sf.isTerm.Get() {
 		return

+ 1 - 1
v4/lev1/log_buf/log_buf_test.go

@@ -19,7 +19,7 @@ func TestLogBuf(t *testing.T) {
 	sf.new()
 }
 
-// Создаёт новый буферный лог
+// Создаёт новый буферный лог.
 func (sf *tester) new() {
 	sf.t.Log("new")
 	sf.log = NewLogBuf(OptIsTerm(true), OptPrefix("tester"))

+ 2 - 2
v4/lev1/log_dict_topic/log_dict_topic.go

@@ -1,4 +1,4 @@
-// package log_dict_topic -- хранитель топиков для логирования
+// package log_dict_topic -- хранитель топиков для логирования.
 package log_dict_topic
 
 import (
@@ -16,7 +16,7 @@ type LogDictTopic struct {
 	client IBusClient
 }
 
-// NewLogDictTopic -- возвращает новый словарь топиков для логирования
+// NewLogDictTopic -- возвращает новый словарь топиков для логирования.
 func NewLogDictTopic(clientBus IBusClient) IResult[*LogDictTopic] {
 	if clientBus == nil {
 		err := fmt.Errorf("NewLogDictTopic(): clientBus == nil")

+ 1 - 1
v4/lev1/log_dict_topic/log_dict_topic_test.go

@@ -15,7 +15,7 @@ func TestLogDictTopic(t *testing.T) {
 	sf.new()
 }
 
-// Создаёт новый словарь топиков для логирования
+// Создаёт новый словарь топиков для логирования.
 func (sf *tester) new() {
 	sf.t.Log("new")
 	res := NewLogDictTopic(nil)

+ 8 - 8
v4/lev1/log_msg/log_msg.go

@@ -1,4 +1,4 @@
-// package log_msg -- сообщение логгера
+// package log_msg -- сообщение логгера.
 package log_msg
 
 import (
@@ -16,14 +16,14 @@ const (
 	ERROR = 0
 )
 
-// logMsg -- сообщение логгера
+// logMsg -- сообщение логгера.
 type logMsg struct {
 	level    string
 	createAt ATime
 	msg      string
 }
 
-// NewLogMsg -- возвращает новое сообщение логгера
+// NewLogMsg -- возвращает новое сообщение логгера.
 func NewLogMsg(level int, msg string) ILogMsg {
 	sf := &logMsg{
 		createAt: TimeNowStr(),
@@ -33,28 +33,28 @@ func NewLogMsg(level int, msg string) ILogMsg {
 	return sf
 }
 
-// String -- возвращает форматированное сообщение лога
+// String -- возвращает форматированное сообщение лога.
 func (sf *logMsg) String() string {
 	strOut := fmt.Sprintf("%v   %v  %v", sf.level, sf.createAt, sf.msg)
 	return strOut
 }
 
-// Msg -- возвращает хранимое сообщение
+// Msg -- возвращает хранимое сообщение.
 func (sf *logMsg) Msg() string {
 	return sf.msg
 }
 
-// Level -- возвращает уровень сообщения
+// Level -- возвращает уровень сообщения.
 func (sf *logMsg) Level() string {
 	return sf.level
 }
 
-// CreateAt -- когда сообщение создано
+// CreateAt -- когда сообщение создано.
 func (sf *logMsg) CreateAt() ATime {
 	return sf.createAt
 }
 
-// Проверяет правильность своего состава
+// Проверяет правильность своего состава.
 func (sf *logMsg) check(level int) {
 	switch level {
 	case DEBUG:

+ 2 - 2
v4/lev1/log_msg/log_msg_test.go

@@ -16,7 +16,7 @@ func TestLogMsg(t *testing.T) {
 	sf.new()
 }
 
-// Создаёт сообщение
+// Создаёт сообщение.
 func (sf *tester) new() {
 	sf.t.Log("new")
 	sf.newBad1()
@@ -43,7 +43,7 @@ func (sf *tester) newGood1() {
 	}
 }
 
-// Неправильный уровень сообщения
+// Неправильный уровень сообщения.
 func (sf *tester) newBad1() {
 	sf.t.Log("newBad1")
 	defer func() {

+ 14 - 14
v4/lev1/lst_sort/lst_sort.go

@@ -1,4 +1,4 @@
-// package lst_sort -- сортированный список значений контекста
+// package lst_sort -- сортированный список значений контекста.
 package lst_sort
 
 import (
@@ -9,13 +9,13 @@ import (
 	. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/ktypes"
 )
 
-// LstSort -- сортированный список значений контекста
+// LstSort -- сортированный список значений контекста.
 type LstSort struct {
 	sync.RWMutex
 	lstVal []ICtxValue // Сортированный список значений
 }
 
-// NewLstSort -- возвращает новый сортированный список значений контекста
+// NewLstSort -- возвращает новый сортированный список значений контекста.
 func NewLstSort() *LstSort {
 	sf := &LstSort{
 		lstVal: []ICtxValue{},
@@ -23,7 +23,7 @@ func NewLstSort() *LstSort {
 	return sf
 }
 
-// Add -- добавляет значение в список
+// Add -- добавляет значение в список.
 func (sf *LstSort) Add(val ICtxValue) {
 	sf.Lock()
 	defer sf.Unlock()
@@ -32,7 +32,7 @@ func (sf *LstSort) Add(val ICtxValue) {
 	sf.sort()
 }
 
-// Del -- удаляет элемент из списка
+// Del -- удаляет элемент из списка.
 func (sf *LstSort) Del(val ICtxValue) {
 	sf.Lock()
 	defer sf.Unlock()
@@ -42,21 +42,21 @@ func (sf *LstSort) Del(val ICtxValue) {
 	sf.del(val)
 }
 
-// List -- возвращает сортированный список
+// List -- возвращает сортированный список.
 func (sf *LstSort) List() []ICtxValue {
 	sf.RLock()
 	defer sf.RUnlock()
 	return sf.list()
 }
 
-// Size -- возвращает длину списка
+// Size -- возвращает длину списка.
 func (sf *LstSort) Size() int {
 	sf.RLock()
 	defer sf.RUnlock()
 	return len(sf.lstVal)
 }
 
-// Get -- возвращает по индексу
+// Get -- возвращает по индексу.
 func (sf *LstSort) Get(ind int) ICtxValue {
 	sf.RLock()
 	defer sf.RUnlock()
@@ -65,7 +65,7 @@ func (sf *LstSort) Get(ind int) ICtxValue {
 	return sf.lstVal[ind]
 }
 
-// удаляет элемент из списка
+// удаляет элемент из списка.
 func (sf *LstSort) del(val ICtxValue) {
 	var (
 		ind  int
@@ -91,29 +91,29 @@ func (sf *LstSort) del(val ICtxValue) {
 	sf.sort()
 }
 
-// возвращает сортированный список
+// возвращает сортированный список.
 func (sf *LstSort) list() []ICtxValue {
 	lst := make([]ICtxValue, 0, len(sf.lstVal))
 	lst = append(lst, sf.lstVal...)
 	return lst
 }
 
-// Сортирует элементы в списке
+// Сортирует элементы в списке.
 func (sf *LstSort) sort() {
 	sort.Sort(sf)
 }
 
-// Swap -- НЕ ИСПОЛЬЗОВАТЬ меняет местами два элемента
+// Swap -- НЕ ИСПОЛЬЗОВАТЬ меняет местами два элемента.
 func (sf *LstSort) Swap(ind1, ind2 int) {
 	sf.lstVal[ind1], sf.lstVal[ind2] = sf.lstVal[ind2], sf.lstVal[ind1]
 }
 
-// Less -- НЕ ИСПОЛЬЗОВАТЬ сравнивает элементы по индексам
+// Less -- НЕ ИСПОЛЬЗОВАТЬ сравнивает элементы по индексам.
 func (sf *LstSort) Less(ind1, ind2 int) bool {
 	return sf.lstVal[ind1].Key() < sf.lstVal[ind2].Key()
 }
 
-// Len -- НЕ ИСПОЛЬЗОВАТЬ возвращает длину списка
+// Len -- НЕ ИСПОЛЬЗОВАТЬ возвращает длину списка.
 func (sf *LstSort) Len() int {
 	return len(sf.lstVal)
 }

+ 5 - 5
v4/lev1/lst_sort/lst_sort_test.go

@@ -22,7 +22,7 @@ func TestLstSort(t *testing.T) {
 	sf.del3()
 }
 
-// Нет такого элемента
+// Нет такого элемента.
 func (sf *tester) del3() {
 	sf.t.Log("del3")
 	val5 := ctx_value.NewCtxValue("val5", 5, "test 5").Hassert("del3()")
@@ -30,7 +30,7 @@ func (sf *tester) del3() {
 	sf.lst.Del(nil)
 }
 
-// Удаляет элемент в середине
+// Удаляет элемент в середине.
 func (sf *tester) del2() {
 	sf.t.Log("del2")
 	val3 := sf.lst.Get(3)
@@ -48,7 +48,7 @@ func (sf *tester) del2() {
 	}
 }
 
-// Удаляет элемент из списка в конце
+// Удаляет элемент из списка в конце.
 func (sf *tester) del() {
 	sf.t.Log("del")
 
@@ -69,7 +69,7 @@ func (sf *tester) del() {
 	_ = sf.lst.List()
 }
 
-// Добавление элементов в список
+// Добавление элементов в список.
 func (sf *tester) add() {
 	sf.t.Log("add")
 	val0 := ctx_value.NewCtxValue("val0", 0, "test 0").Hassert("add()")
@@ -84,7 +84,7 @@ func (sf *tester) add() {
 	sf.lst.Add(val3)
 }
 
-// Создание сортированного списка
+// Создание сортированного списка.
 func (sf *tester) new() {
 	sf.t.Log("new")
 	sf.lst = NewLstSort()

+ 11 - 11
v4/lev1/mock_env/mock_env.go

@@ -1,4 +1,4 @@
-// package mock_env -- обеспечивает мок-окружение для тестов
+// package mock_env -- обеспечивает мок-окружение для тестов.
 package mock_env
 
 import (
@@ -13,7 +13,7 @@ type IMockEnv interface {
 	Pwd() string
 }
 
-// MockEnv -- объект мок-окружения
+// MockEnv -- объект мок-окружения.
 type MockEnv struct {
 	dictEnv  map[string]string // Словарь переменных окружения
 	pwd      string            // Текущий путь процесса
@@ -21,7 +21,7 @@ type MockEnv struct {
 	strEnv   string            // Фактическое содержимое .env файла
 }
 
-// MakeEnv -- возвращает новое мок-окружение
+// MakeEnv -- возвращает новое мок-окружение.
 func MakeEnv() *MockEnv {
 	sf := &MockEnv{
 		dictEnv: map[string]string{},
@@ -34,7 +34,7 @@ func MakeEnv() *MockEnv {
 	return sf
 }
 
-// Парсит полученный текст .env для установки переменных окружения
+// Парсит полученный текст .env для установки переменных окружения.
 func (sf *MockEnv) parseEnv() {
 	lstStr := strings.Split(sf.strEnv, "\n")
 	for _, val := range lstStr {
@@ -49,7 +49,7 @@ func (sf *MockEnv) parseEnv() {
 	}
 }
 
-// Парсит строку окружения
+// Парсит строку окружения.
 func (sf *MockEnv) parseEnvStr(pair string) {
 	lstPair := strings.Split(pair, "=")
 	Hassert(len(lstPair) >= 2, "MockEnv.parseEnvStr(): pair(%v) not have =", pair)
@@ -67,14 +67,14 @@ func (sf *MockEnv) parseEnvStr(pair string) {
 	sf.dictEnv[key] = val
 }
 
-// Читает файл переменных окружения
+// Читает файл переменных окружения.
 func (sf *MockEnv) readEnv() {
 	binEnv, err := os.ReadFile(sf.fileName)
 	Hassert(err == nil, "MockEnv.readEnv(): in read %v, err=\n\t%v", sf.fileName, err)
 	sf.strEnv = string(binEnv)
 }
 
-// Устанавливает текущий путь относительно проекта в dev
+// Устанавливает текущий путь относительно проекта в dev.
 func (sf *MockEnv) setPath() {
 	dir, err := os.Getwd()
 	Hassert(err == nil, "MockEnv.setPath(): in get PWD, err=\n\t%v", err)
@@ -100,12 +100,12 @@ func (sf *MockEnv) setPath() {
 	sf.fileName = fileName
 }
 
-// Pwd -- возвращает текущий рабочий каталог процесса
+// Pwd -- возвращает текущий рабочий каталог процесса.
 func (sf *MockEnv) Pwd() string {
 	return sf.pwd
 }
 
-// SetAll -- поднимает все переменные окружения
+// SetAll -- поднимает все переменные окружения.
 func (sf *MockEnv) SetAll() error {
 	sf.ResetAll()
 	for key, val := range sf.dictEnv {
@@ -116,14 +116,14 @@ func (sf *MockEnv) SetAll() error {
 	return nil
 }
 
-// ResetAll -- сбрасывает все переменные окружения
+// ResetAll -- сбрасывает все переменные окружения.
 func (sf *MockEnv) ResetAll() {
 	for key := range sf.dictEnv {
 		sf.Reset(key)
 	}
 }
 
-// Reset -- сбрасывает конкретный ключ
+// Reset -- сбрасывает конкретный ключ.
 func (sf *MockEnv) Reset(key string) {
 	Hassert(key != "", "MockEnv.Reset(): key is empty")
 	err := os.Unsetenv(key)

+ 3 - 3
v4/lev1/mock_env/mock_env_test.go

@@ -17,7 +17,7 @@ func TestMockEnv(t *testing.T) {
 	sf.reset()
 }
 
-// Сброс переменной окружения
+// Сброс переменной окружения.
 func (sf *tester) reset() {
 	sf.t.Log("reset")
 	sf.resetBad1()
@@ -27,7 +27,7 @@ func (sf *tester) reset() {
 	}
 }
 
-// Нет переменой окружения
+// Нет переменой окружения.
 func (sf *tester) resetBad1() {
 	sf.t.Log("resetBad1")
 	defer func() {
@@ -38,7 +38,7 @@ func (sf *tester) resetBad1() {
 	sf.me.Reset("")
 }
 
-// Создание мок-окружения
+// Создание мок-окружения.
 func (sf *tester) make() {
 	sf.t.Log("make")
 	defer func() {

+ 10 - 10
v4/lev1/option/option.go

@@ -7,12 +7,12 @@ import (
 	. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/ktypes"
 )
 
-// Option -- результат возможно содержащий nil
+// Option -- результат возможно содержащий nil.
 type Option[T any] struct {
 	val *T
 }
 
-// NewOpt - полезный результат
+// NewOpt - полезный результат.
 func NewOpt[T any](value T) *Option[T] {
 	// Для некоторых типов нужна дополнительная проверка через reflect
 	v := reflect.ValueOf(value)
@@ -25,30 +25,30 @@ func NewOpt[T any](value T) *Option[T] {
 	return sf
 }
 
-// NewNone - нет результата в ответе
+// NewNone - нет результата в ответе.
 func NewNone[T any]() IOption[T] {
 	return &Option[T]{
 		val: nil,
 	}
 }
 
-// IsVal - проверяет, есть ли значение
+// IsVal - проверяет, есть ли значение.
 func (sf *Option[T]) IsVal() bool {
 	return sf.val != nil
 }
 
-// IsSome - проверяет, есть ли значение
+// IsSome - проверяет, есть ли значение.
 func (sf *Option[T]) IsNone() bool {
 	return sf.val == nil
 }
 
-// Val - извлекает значение (паника, если None)
+// Val - извлекает значение (паника, если None).
 func (sf *Option[T]) Val() T {
 	Hassert(sf.val != nil, "Option[T].Val(): val==nil!")
 	return *sf.val
 }
 
-// ValOr - возвращает значение или дефолтное
+// ValOr - возвращает значение или дефолтное.
 func (sf Option[T]) ValOr(defaultValue T) T {
 	if sf.val == nil {
 		return defaultValue
@@ -56,7 +56,7 @@ func (sf Option[T]) ValOr(defaultValue T) T {
 	return *sf.val
 }
 
-// ValOrFn -- возвращает значение, если оно есть, или результат выполнения функции
+// ValOrFn -- возвращает значение, если оно есть, или результат выполнения функции.
 func (sf *Option[T]) ValOrFn(fn func() T) T {
 	Hassert(fn != nil, "Result[T].UnwrapOrFn(): fn==nil")
 	if sf.val == nil {
@@ -65,13 +65,13 @@ func (sf *Option[T]) ValOrFn(fn func() T) T {
 	return *sf.val
 }
 
-// Hassert -- проверяет, что не пустое значение (с паникой)
+// Hassert -- проверяет, что не пустое значение (с паникой).
 func (sf *Option[T]) Hassert(msgFormat string, args ...any) T {
 	Hassert(sf.val != nil, msgFormat, args...)
 	return *sf.val
 }
 
-// Assert -- проверяет, что нет ошибки (с паникой только на локальном стенде)
+// Assert -- проверяет, что нет ошибки (с паникой только на локальном стенде).
 func (sf *Option[T]) Assert(msgFormat string, args ...any) T {
 	Assert(sf.val != nil, msgFormat, args...)
 	return *sf.val

+ 4 - 4
v4/lev1/option/option_test.go

@@ -17,7 +17,7 @@ func TestOption(t *testing.T) {
 	sf.create()
 }
 
-// Создаёт новый Result
+// Создаёт новый Result.
 func (sf *testerOption) create() {
 	sf.t.Log("create")
 	sf.createSomeBad1()
@@ -118,12 +118,12 @@ func (sf *testerOption) createSomeGood2() {
 	res.Assert("test")
 }
 
-// Функция высшего порядка для замещения ошибки
+// Функция высшего порядка для замещения ошибки.
 func (sf *testerOption) fnWrap2() string {
 	return "test5"
 }
 
-// Функция высшего порядка для замещения ошибки
+// Функция высшего порядка для замещения ошибки.
 func (sf *testerOption) fnWrap() string {
 	return "test1"
 }
@@ -139,7 +139,7 @@ func (sf *testerOption) createSomeGood1() {
 	_ = NewOpt(&str)
 }
 
-// Нет результата
+// Нет результата.
 func (sf *testerOption) createSomeBad1() {
 	sf.t.Log("createSomeBad1")
 	defer func() {

+ 14 - 14
v4/lev1/result/result.go

@@ -9,9 +9,9 @@ import (
 	. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/ktypes"
 )
 
-// Result — обёртка вокруг результата с возможной ошибкой
+// Result — обёртка вокруг результата с возможной ошибкой.
 //
-// Может быть либо только полезное значение, либо только ошибка
+// Может быть либо только полезное значение, либо только ошибка.
 type Result[T any] struct {
 	val     T     // Полезное значение
 	isErr   bool  // Если содержит ошибку
@@ -19,7 +19,7 @@ type Result[T any] struct {
 	err     error // Ошибка
 }
 
-// NewRes -- возвращает успешный Result с значением
+// NewRes -- возвращает успешный Result с значением.
 func NewRes[T any](result T) IResult[T] {
 	// Для некоторых типов нужна дополнительная проверка через reflect
 	v := reflect.ValueOf(result)
@@ -34,7 +34,7 @@ func NewRes[T any](result T) IResult[T] {
 	return sf
 }
 
-// NewErr -- возвращает Result с ошибкой
+// NewErr -- возвращает Result с ошибкой.
 func NewErr[T any](err error) IResult[T] {
 	Hassert(err != nil, "NewError(): err==nil")
 	sf := &Result[T]{
@@ -45,7 +45,7 @@ func NewErr[T any](err error) IResult[T] {
 	return sf
 }
 
-// WrapErr -- оборачивает существующий Result с ошибкой с новой ошибкой
+// WrapErr -- оборачивает существующий Result с ошибкой с новой ошибкой.
 func WrapErr[T any](res IResult[T], err error) IResult[T] {
 	Hassert(res.IsErr(), "WrapErr(): result not have error")
 	Hassert(err != nil, "WrapErr(): err==nil")
@@ -61,25 +61,25 @@ func (sf *Result[T]) destroy(res *Result[T]) {
 	}
 }
 
-// IsOk -- возвращает true, если Result содержит значение
+// IsOk -- возвращает true, если Result содержит значение.
 func (sf *Result[T]) IsOk() bool {
 	sf.isCheck = true
 	return !sf.isErr
 }
 
-// IsErr -- возвращает true, если Result содержит ошибку
+// IsErr -- возвращает true, если Result содержит ошибку.
 func (sf *Result[T]) IsErr() bool {
 	sf.isCheck = true
 	return sf.isErr
 }
 
-// Val -- возвращает значение, если оно есть, иначе паникует
+// Val -- возвращает значение, если оно есть, иначе паникует.
 func (sf *Result[T]) Val() T {
 	Hassert(!sf.isErr, "Result[T].Val(): err(%v)!=nil", sf.err)
 	return sf.val
 }
 
-// ValOr -- возвращает значение, если оно есть, или значение по умолчанию
+// ValOr -- возвращает значение, если оно есть, или значение по умолчанию.
 func (sf *Result[T]) ValOr(defaultValue T) T {
 	sf.isCheck = true
 	if sf.isErr {
@@ -88,7 +88,7 @@ func (sf *Result[T]) ValOr(defaultValue T) T {
 	return sf.val
 }
 
-// ValOrFn -- возвращает значение, если оно есть, или результат выполнения функции
+// ValOrFn -- возвращает значение, если оно есть, или результат выполнения функции.
 func (sf *Result[T]) ValOrFn(fn func() T) T {
 	Hassert(fn != nil, "Result[T].ValOrFn(): fn==nil")
 	sf.isCheck = true
@@ -98,21 +98,21 @@ func (sf *Result[T]) ValOrFn(fn func() T) T {
 	return sf.val
 }
 
-// Err -- возвращает ошибку, если она есть
+// Err -- возвращает ошибку, если она есть.
 func (sf *Result[T]) Err() error {
 	Hassert(sf.isErr, "Result[T].Err(): err==nil")
 	sf.isCheck = true
 	return sf.err
 }
 
-// Error -- возвращает строковое представление ошибки, если она есть
+// Error -- возвращает строковое представление ошибки, если она есть.
 func (sf *Result[T]) Error() string {
 	Hassert(sf.isErr, "Result[T].Error(): err==nil")
 	sf.isCheck = true
 	return sf.err.Error()
 }
 
-// Hassert -- проверяет, что нет ошибки (с паникой)
+// Hassert -- проверяет, что нет ошибки (с паникой).
 func (sf *Result[T]) Hassert(msgFormat string, args ...any) T {
 	strErr := ""
 	if sf.isErr {
@@ -124,7 +124,7 @@ func (sf *Result[T]) Hassert(msgFormat string, args ...any) T {
 	return sf.val
 }
 
-// Assert -- проверяет, что нет ошибки (с паникой только на локальном стенде)
+// Assert -- проверяет, что нет ошибки (с паникой только на локальном стенде).
 func (sf *Result[T]) Assert(msgFormat string, args ...any) T {
 	strErr := ""
 	if sf.isErr {

+ 6 - 6
v4/lev1/result/result_test.go

@@ -21,7 +21,7 @@ func TestResult(t *testing.T) {
 
 }
 
-// Создаёт новый результат и не проверяет его
+// Создаёт новый результат и не проверяет его.
 func (sf *tester) notCheck() {
 	sf.t.Log("notCheck")
 	defer func() {
@@ -42,7 +42,7 @@ func (sf *tester) notCheck() {
 	res_.destroy(res_)
 }
 
-// Создаёт новый Result
+// Создаёт новый Result.
 func (sf *tester) create() {
 	sf.t.Log("create")
 	sf.createOkBad1()
@@ -140,7 +140,7 @@ func (sf *tester) unwrapErr(res IResult[string]) {
 	_ = res.Val()
 }
 
-// Нет ошибки
+// Нет ошибки.
 func (sf *tester) createErrBad1() {
 	sf.t.Log("createErrBad1")
 	defer func() {
@@ -190,12 +190,12 @@ func (sf *tester) createOkGood2() {
 	res.Assert("test")
 }
 
-// Функция высшего порядка для замещения ошибки
+// Функция высшего порядка для замещения ошибки.
 func (sf *tester) fnWrap2() string {
 	return "test5"
 }
 
-// Функция высшего порядка для замещения ошибки
+// Функция высшего порядка для замещения ошибки.
 func (sf *tester) fnWrap() string {
 	return "test1"
 }
@@ -211,7 +211,7 @@ func (sf *tester) createOkGood1() {
 	_ = NewRes(&str)
 }
 
-// Нет результата
+// Нет результата.
 func (sf *tester) createOkBad1() {
 	sf.t.Log("createOkBad1")
 	defer func() {

+ 10 - 10
v4/lev1/safe_bool/safe_bool.go

@@ -1,4 +1,4 @@
-// package safe_bool -- потокобезопасный булевый признак
+// package safe_bool -- потокобезопасный булевый признак.
 package safe_bool
 
 import (
@@ -11,19 +11,19 @@ import (
 	. "gitp78su.ipnodns.ru/svi/kern/v4/lev1/result"
 )
 
-// safeBool -- потокобезопасный булевый признак
+// safeBool -- потокобезопасный булевый признак.
 type safeBool struct {
 	sync.RWMutex
 	val bool
 }
 
-// NewSafeBool -- возвращает новый потокобезопасный булевый признак
+// NewSafeBool -- возвращает новый потокобезопасный булевый признак.
 func NewSafeBool() ISafeBool {
 	sf := &safeBool{}
 	return sf
 }
 
-// NewSafeBoolFromStr -- возвращает новое потокобезопасное булево из строки
+// NewSafeBoolFromStr -- возвращает новое потокобезопасное булево из строки.
 func NewSafeBoolFromStr(strVal string) IResult[ISafeBool] {
 	sf := NewSafeBool()
 	res := sf.FromStr(strVal)
@@ -34,7 +34,7 @@ func NewSafeBoolFromStr(strVal string) IResult[ISafeBool] {
 	return NewRes(sf)
 }
 
-// NewSafeBoolGetenv -- возвращает новое потокобезопасное целое из окружения
+// NewSafeBoolGetenv -- возвращает новое потокобезопасное целое из окружения.
 func NewSafeBoolGetenv(env string) IResult[ISafeBool] {
 	sf := NewSafeBool()
 	res := sf.Getenv(env)
@@ -45,28 +45,28 @@ func NewSafeBoolGetenv(env string) IResult[ISafeBool] {
 	return NewRes(sf)
 }
 
-// Get -- возвращает хранимый булевый признак
+// Get -- возвращает хранимый булевый признак.
 func (sf *safeBool) Get() bool {
 	sf.RLock()
 	defer sf.RUnlock()
 	return sf.val
 }
 
-// Set -- устанавливает булевый признак
+// Set -- устанавливает булевый признак.
 func (sf *safeBool) Set() {
 	sf.Lock()
 	defer sf.Unlock()
 	sf.val = true
 }
 
-// Reset -- сбрасывает булевый признак
+// Reset -- сбрасывает булевый признак.
 func (sf *safeBool) Reset() {
 	sf.Lock()
 	defer sf.Unlock()
 	sf.val = false
 }
 
-// FromStr -- получает число из строки
+// FromStr -- получает число из строки.
 func (sf *safeBool) FromStr(strVal string) IResult[bool] {
 	strVal = strings.ToLower(strVal)
 	sf.Lock()
@@ -82,7 +82,7 @@ func (sf *safeBool) FromStr(strVal string) IResult[bool] {
 	return NewRes(sf.val)
 }
 
-// Getenv -- получает значение из окружения
+// Getenv -- получает значение из окружения.
 func (sf *safeBool) Getenv(env string) IResult[bool] {
 	strVal := os.Getenv(env)
 	res := sf.FromStr(strVal)

+ 13 - 13
v4/lev1/safe_bool/safe_bool_test.go

@@ -23,7 +23,7 @@ func TestSAfeBool(t *testing.T) {
 	sf.newFromStr()
 }
 
-// Булево из строки
+// Булево из строки.
 func (sf *tester) newFromStr() {
 	sf.t.Log("newFromStr")
 	sf.newFromStrBad1()
@@ -42,7 +42,7 @@ func (sf *tester) newFromStrGood1() {
 	}
 }
 
-// Кривое булево значение
+// Кривое булево значение.
 func (sf *tester) newFromStrBad1() {
 	sf.t.Log("newFromStrBad1")
 	res := NewSafeBoolFromStr("0")
@@ -51,7 +51,7 @@ func (sf *tester) newFromStrBad1() {
 	}
 }
 
-// Булево из окружения
+// Булево из окружения.
 func (sf *tester) newFromEnv() {
 	sf.t.Log("newFromEnv")
 	sf.newFromEnvBad1()
@@ -61,8 +61,8 @@ func (sf *tester) newFromEnv() {
 
 func (sf *tester) newFromEnvGood2() {
 	sf.t.Log("newFromEnvGood2")
-	os.Unsetenv("TEST_BOOL")
-	os.Setenv("TEST_BOOL", "false")
+	_ = os.Unsetenv("TEST_BOOL")
+	_ = os.Setenv("TEST_BOOL", "false")
 	res := NewSafeBoolGetenv("TEST_BOOL")
 	if res.IsErr() {
 		sf.t.Fatalf("newFromEnvGood2(): err=%v", res.Err())
@@ -75,8 +75,8 @@ func (sf *tester) newFromEnvGood2() {
 
 func (sf *tester) newFromEnvGood1() {
 	sf.t.Log("newFromEnvGood1")
-	os.Unsetenv("TEST_BOOL")
-	os.Setenv("TEST_BOOL", "true")
+	_ = os.Unsetenv("TEST_BOOL")
+	_ = os.Setenv("TEST_BOOL", "true")
 	res := NewSafeBoolGetenv("TEST_BOOL")
 	if res.IsErr() {
 		sf.t.Fatalf("newFromEnvGood1(): err=%v", res.Err())
@@ -87,18 +87,18 @@ func (sf *tester) newFromEnvGood1() {
 	}
 }
 
-// Кривое булево значение
+// Кривое булево значение.
 func (sf *tester) newFromEnvBad1() {
 	sf.t.Log("newFromStrBad1")
-	os.Unsetenv("TEST_BOOL")
-	os.Setenv("TEST_BOOL", "bad")
+	_ = os.Unsetenv("TEST_BOOL")
+	_ = os.Setenv("TEST_BOOL", "bad")
 	res := NewSafeBoolGetenv("TEST_BOOL")
 	if res.IsOk() {
 		sf.t.Fatalf("newFromStrBad1(): err==nil")
 	}
 }
 
-// Сбрасывает хранимое значение
+// Сбрасывает хранимое значение.
 func (sf *tester) reset() {
 	sf.t.Log("reset")
 	sf.sb.Reset()
@@ -111,7 +111,7 @@ func (sf *tester) reset() {
 	}
 }
 
-// Установка хранимого значения
+// Установка хранимого значения.
 func (sf *tester) set() {
 	sf.t.Log("set")
 	sf.sb.Set()
@@ -124,7 +124,7 @@ func (sf *tester) set() {
 	}
 }
 
-// Создаёт потокобезопасный булевый признак
+// Создаёт потокобезопасный булевый признак.
 func (sf *tester) create() {
 	sf.t.Log("create")
 	sf.sb = NewSafeBool()

+ 12 - 12
v4/lev1/safe_bool_react/safe_bool_react.go

@@ -1,4 +1,4 @@
-// package safe_bool_react -- потокобезопасный булевый признак с реакцией на своё изменение
+// package safe_bool_react -- потокобезопасный булевый признак с реакцией на своё изменение.
 package safe_bool_react
 
 import (
@@ -11,14 +11,14 @@ import (
 	. "gitp78su.ipnodns.ru/svi/kern/v4/lev1/result"
 )
 
-// safeBoolReact -- потокобезопасный булевый признак с реакцией на своё изменение
+// safeBoolReact -- потокобезопасный булевый признак с реакцией на своё изменение.
 type safeBoolReact struct {
 	sync.RWMutex
 	dict map[string]func(bool) // Словарь обратных вызовов
 	val  bool
 }
 
-// NewSafeBoolReact -- возвращает новый потокобезопасный булевый признак с реакцией на своё изменение
+// NewSafeBoolReact -- возвращает новый потокобезопасный булевый признак с реакцией на своё изменение.
 func NewSafeBoolReact() ISafeBoolReact {
 	sf := &safeBoolReact{
 		dict: map[string]func(bool){},
@@ -26,7 +26,7 @@ func NewSafeBoolReact() ISafeBoolReact {
 	return sf
 }
 
-// NewSafeBoolReactFromStr -- возвращает новое потокобезопасное булево с реакцией из строки
+// NewSafeBoolReactFromStr -- возвращает новое потокобезопасное булево с реакцией из строки.
 func NewSafeBoolReactFromStr(strVal string) IResult[ISafeBoolReact] {
 	sf := NewSafeBoolReact()
 	res := sf.FromStr(strVal)
@@ -37,7 +37,7 @@ func NewSafeBoolReactFromStr(strVal string) IResult[ISafeBoolReact] {
 	return NewRes(sf)
 }
 
-// NewSafeBoolGetenv -- возвращает новое потокобезопасное целое с реакцией из окружения
+// NewSafeBoolGetenv -- возвращает новое потокобезопасное целое с реакцией из окружения.
 func NewSafeBoolGetenv(env string) IResult[ISafeBoolReact] {
 	sf := NewSafeBoolReact()
 	res := sf.Getenv(env)
@@ -48,14 +48,14 @@ func NewSafeBoolGetenv(env string) IResult[ISafeBoolReact] {
 	return NewRes(sf)
 }
 
-// Delete -- удаляет функцию обратного вызова из наблюдения
+// Delete -- удаляет функцию обратного вызова из наблюдения.
 func (sf *safeBoolReact) Delete(key string) {
 	sf.Lock()
 	defer sf.Unlock()
 	delete(sf.dict, key)
 }
 
-// Add -- добавляет функцию обратного вызова
+// Add -- добавляет функцию обратного вызова.
 func (sf *safeBoolReact) Add(key string, fn func(bool)) IResult[bool] {
 	sf.Lock()
 	defer sf.Unlock()
@@ -70,14 +70,14 @@ func (sf *safeBoolReact) Add(key string, fn func(bool)) IResult[bool] {
 	return NewRes(true)
 }
 
-// Get -- возвращает хранимый булевый признак
+// Get -- возвращает хранимый булевый признак.
 func (sf *safeBoolReact) Get() bool {
 	sf.RLock()
 	defer sf.RUnlock()
 	return sf.val
 }
 
-// Set -- устанавливает булевый признак
+// Set -- устанавливает булевый признак.
 func (sf *safeBoolReact) Set() {
 	sf.Lock()
 	defer sf.Unlock()
@@ -87,7 +87,7 @@ func (sf *safeBoolReact) Set() {
 	}
 }
 
-// Reset -- сбрасывает булевый признак
+// Reset -- сбрасывает булевый признак.
 func (sf *safeBoolReact) Reset() {
 	sf.Lock()
 	defer sf.Unlock()
@@ -97,7 +97,7 @@ func (sf *safeBoolReact) Reset() {
 	}
 }
 
-// FromStr -- получает число из строки
+// FromStr -- получает число из строки.
 func (sf *safeBoolReact) FromStr(strVal string) IResult[bool] {
 	strVal = strings.ToLower(strVal)
 	sf.Lock()
@@ -113,7 +113,7 @@ func (sf *safeBoolReact) FromStr(strVal string) IResult[bool] {
 	return NewRes(sf.val)
 }
 
-// Getenv -- получает значение из окружения
+// Getenv -- получает значение из окружения.
 func (sf *safeBoolReact) Getenv(env string) IResult[bool] {
 	strVal := os.Getenv(env)
 	res := sf.FromStr(strVal)

+ 16 - 16
v4/lev1/safe_bool_react/safe_bool_react_test.go

@@ -26,7 +26,7 @@ func TestSafeBoolReact(t *testing.T) {
 	sf.newFromStr()
 }
 
-// Булево из строки
+// Булево из строки.
 func (sf *tester) newFromStr() {
 	sf.t.Log("newFromStr")
 	sf.newFromStrBad1()
@@ -45,7 +45,7 @@ func (sf *tester) newFromStrGood1() {
 	}
 }
 
-// Кривое булево значение
+// Кривое булево значение.
 func (sf *tester) newFromStrBad1() {
 	sf.t.Log("newFromStrBad1")
 	res := NewSafeBoolReactFromStr("0")
@@ -54,7 +54,7 @@ func (sf *tester) newFromStrBad1() {
 	}
 }
 
-// Булево из окружения
+// Булево из окружения.
 func (sf *tester) newFromEnv() {
 	sf.t.Log("newFromEnv")
 	sf.newFromEnvBad1()
@@ -64,8 +64,8 @@ func (sf *tester) newFromEnv() {
 
 func (sf *tester) newFromEnvGood2() {
 	sf.t.Log("newFromEnvGood2")
-	os.Unsetenv("TEST_BOOL")
-	os.Setenv("TEST_BOOL", "false")
+	_ = os.Unsetenv("TEST_BOOL")
+	_ = os.Setenv("TEST_BOOL", "false")
 	res := NewSafeBoolGetenv("TEST_BOOL")
 	if res.IsErr() {
 		sf.t.Fatalf("newFromEnvGood2(): err=%v", res.Err())
@@ -78,8 +78,8 @@ func (sf *tester) newFromEnvGood2() {
 
 func (sf *tester) newFromEnvGood1() {
 	sf.t.Log("newFromEnvGood1")
-	os.Unsetenv("TEST_BOOL")
-	os.Setenv("TEST_BOOL", "true")
+	_ = os.Unsetenv("TEST_BOOL")
+	_ = os.Setenv("TEST_BOOL", "true")
 	res := NewSafeBoolGetenv("TEST_BOOL")
 	if res.IsErr() {
 		sf.t.Fatalf("newFromEnvGood1(): err=%v", res.Err())
@@ -90,18 +90,18 @@ func (sf *tester) newFromEnvGood1() {
 	}
 }
 
-// Кривое булево значение
+// Кривое булево значение.
 func (sf *tester) newFromEnvBad1() {
 	sf.t.Log("newFromStrBad1")
-	os.Unsetenv("TEST_BOOL")
-	os.Setenv("TEST_BOOL", "bad")
+	_ = os.Unsetenv("TEST_BOOL")
+	_ = os.Setenv("TEST_BOOL", "bad")
 	res := NewSafeBoolGetenv("TEST_BOOL")
 	if res.IsOk() {
 		sf.t.Fatalf("newFromStrBad1(): err==nil")
 	}
 }
 
-// Удаляет функцию обратного вызова
+// Удаляет функцию обратного вызова.
 func (sf *tester) del() {
 	sf.t.Log("del")
 	sf.sbr.Delete("test")
@@ -112,18 +112,18 @@ func (sf *tester) del() {
 	}
 }
 
-// Добавляет функцию обратного вызова
+// Добавляет функцию обратного вызова.
 func (sf *tester) add() {
 	sf.t.Log("add")
 	sf.sbr.Add("test", sf.fnBack).Hassert("add()")
 }
 
-// Функция обратного вызова для контроля
+// Функция обратного вызова для контроля.
 func (sf *tester) fnBack(val bool) {
 	sf.val = val
 }
 
-// Сбрасывает хранимое значение
+// Сбрасывает хранимое значение.
 func (sf *tester) reset() {
 	sf.t.Log("reset")
 	sf.sbr.Reset()
@@ -140,7 +140,7 @@ func (sf *tester) reset() {
 	}
 }
 
-// Установка хранимого значения
+// Установка хранимого значения.
 func (sf *tester) set() {
 	sf.t.Log("set")
 	sf.sbr.Set()
@@ -156,7 +156,7 @@ func (sf *tester) set() {
 	}
 }
 
-// Создаёт потокобезопасный булевый признак
+// Создаёт потокобезопасный булевый признак.
 func (sf *tester) create() {
 	sf.t.Log("create")
 	sf.sbr = NewSafeBoolReact()

+ 17 - 17
v4/lev1/safe_int/safe_int.go

@@ -1,4 +1,4 @@
-// package safe_int -- потокобезопасный целое
+// package safe_int -- потокобезопасный целое.
 package safe_int
 
 import (
@@ -10,13 +10,13 @@ import (
 	. "gitp78su.ipnodns.ru/svi/kern/v4/lev1/result"
 )
 
-// safeInt -- потокобезопасное целое
+// safeInt -- потокобезопасное целое.
 type safeInt struct {
 	sync.RWMutex
 	val Int
 }
 
-// NewSafeInt -- возвращает новое потокобезопасное целое
+// NewSafeInt -- возвращает новое потокобезопасное целое.
 func NewSafeInt(val int) ISafeInt {
 	sf := &safeInt{
 		val: kint.NewInt(val),
@@ -24,7 +24,7 @@ func NewSafeInt(val int) ISafeInt {
 	return sf
 }
 
-// NewSafeIntFromStr -- возвращает новое потокобезопасное целое из строки
+// NewSafeIntFromStr -- возвращает новое потокобезопасное целое из строки.
 func NewSafeIntFromStr(strVal string) IResult[ISafeInt] {
 	sf := NewSafeInt(0)
 	res := sf.FromStr(strVal)
@@ -35,7 +35,7 @@ func NewSafeIntFromStr(strVal string) IResult[ISafeInt] {
 	return NewRes(sf)
 }
 
-// NewSafeIntGetenv -- возвращает новое потокобезопасное целое из окружения
+// NewSafeIntGetenv -- возвращает новое потокобезопасное целое из окружения.
 func NewSafeIntGetenv(env string) IResult[ISafeInt] {
 	sf := NewSafeInt(0)
 	res := sf.Getenv(env)
@@ -46,84 +46,84 @@ func NewSafeIntGetenv(env string) IResult[ISafeInt] {
 	return NewRes(sf)
 }
 
-// FromBool -- устанавливает значение из булева значения
+// FromBool -- устанавливает значение из булева значения.
 func (sf *safeInt) FromBool(val bool) int {
 	sf.Lock()
 	defer sf.Unlock()
 	return sf.val.FromBool(val)
 }
 
-// Get -- возвращает хранимое целое
+// Get -- возвращает хранимое целое.
 func (sf *safeInt) Get() int {
 	sf.RLock()
 	defer sf.RUnlock()
 	return sf.val.Get()
 }
 
-// Dec -- уменьшает значение на 1
+// Dec -- уменьшает значение на 1.
 func (sf *safeInt) Dec() {
 	sf.Lock()
 	defer sf.Unlock()
 	sf.val.Dec()
 }
 
-// Inc -- увеличивает значение на 1
+// Inc -- увеличивает значение на 1.
 func (sf *safeInt) Inc() {
 	sf.Lock()
 	defer sf.Unlock()
 	sf.val.Inc()
 }
 
-// Set -- устанавливает целое
+// Set -- устанавливает целое.
 func (sf *safeInt) Set(val int) {
 	sf.Lock()
 	defer sf.Unlock()
 	sf.val.Set(val)
 }
 
-// Reset -- сбрасывает целое
+// Reset -- сбрасывает целое.
 func (sf *safeInt) Reset() {
 	sf.Lock()
 	defer sf.Unlock()
 	sf.val.Reset()
 }
 
-// FromStr -- получает число из строки
+// FromStr -- получает число из строки.
 func (sf *safeInt) FromStr(strVal string) IResult[int] {
 	sf.Lock()
 	defer sf.Unlock()
 	return sf.val.FromStr(strVal)
 }
 
-// FromByte -- получает число из среза байт
+// FromByte -- получает число из среза байт.
 func (sf *safeInt) FromByte(binData []byte) IResult[int] {
 	sf.Lock()
 	defer sf.Unlock()
 	return sf.val.FromByte(binData)
 }
 
-// ToByte -- конвертирует число в срез байт
+// ToByte -- конвертирует число в срез байт.
 func (sf *safeInt) ToByte() []byte {
 	sf.RLock()
 	defer sf.RUnlock()
 	return sf.val.ToByte()
 }
 
-// ToBool -- конвертирует число в bool
+// ToBool -- конвертирует число в bool.
 func (sf *safeInt) ToBool() bool {
 	sf.RLock()
 	defer sf.RUnlock()
 	return sf.val.ToBool()
 }
 
-// ToStr -- конвертирует число в строку
+// ToStr -- конвертирует число в строку.
 func (sf *safeInt) ToStr() string {
 	sf.RLock()
 	defer sf.RUnlock()
 	return sf.val.ToStr()
 }
 
-// Getenv -- получает значение из окружения
+// Getenv -- получает значение из окружения.
 func (sf *safeInt) Getenv(env string) IResult[int] {
 	sf.Lock()
 	defer sf.Unlock()

+ 15 - 15
v4/lev1/safe_int/safe_int_test.go

@@ -95,7 +95,7 @@ func (sf *tester) inc() {
 	}
 }
 
-// Получает целое из строки
+// Получает целое из строки.
 func (sf *tester) newFromStr() {
 	sf.t.Log("newFromStr")
 	res := NewSafeIntFromStr("-a52")
@@ -111,15 +111,15 @@ func (sf *tester) newFromStr() {
 	}
 }
 
-// Получает целое из окружения
+// Получает целое из окружения.
 func (sf *tester) newGetenv() {
 	sf.t.Log("newGetenv")
 	res := NewSafeIntGetenv("TEST_ENV2")
 	if res.IsOk() {
 		sf.t.Fatalf("newGetenv(): err==nil")
 	}
-	os.Unsetenv("TEST_ENV2")
-	os.Setenv("TEST_ENV2", "-52")
+	_ = os.Unsetenv("TEST_ENV2")
+	_ = os.Setenv("TEST_ENV2", "-52")
 	res = NewSafeIntGetenv("TEST_ENV2")
 	if res.IsErr() {
 		sf.t.Fatalf("newGetenv(): err=%v", res.Err())
@@ -129,7 +129,7 @@ func (sf *tester) newGetenv() {
 	}
 }
 
-// Получает значение из окружения
+// Получает значение из окружения.
 func (sf *tester) getEnv() {
 	sf.t.Log("getEnv")
 	sf.getEnvBad1()
@@ -138,8 +138,8 @@ func (sf *tester) getEnv() {
 
 func (sf *tester) getEnvGood1() {
 	sf.t.Log("getEnvGood1")
-	os.Unsetenv("TEST_VAL")
-	os.Setenv("TEST_VAL", "45")
+	_ = os.Unsetenv("TEST_VAL")
+	_ = os.Setenv("TEST_VAL", "45")
 	val := NewSafeInt(0)
 	res := val.Getenv("TEST_VAL")
 	if res.IsErr() {
@@ -150,11 +150,11 @@ func (sf *tester) getEnvGood1() {
 	}
 }
 
-// Окружение не число
+// Окружение не число.
 func (sf *tester) getEnvBad1() {
 	sf.t.Log("getEnvBad1")
-	os.Unsetenv("TEST_VAL")
-	os.Setenv("TEST_VAL", "")
+	_ = os.Unsetenv("TEST_VAL")
+	_ = os.Setenv("TEST_VAL", "")
 	val := NewSafeInt(0)
 	res := val.Getenv("TEST_VAL")
 	if res.IsOk() {
@@ -162,7 +162,7 @@ func (sf *tester) getEnvBad1() {
 	}
 }
 
-// Получает значение из строки
+// Получает значение из строки.
 func (sf *tester) fromStr() {
 	sf.t.Log("fromStr")
 	sf.fromStrBad1()
@@ -181,7 +181,7 @@ func (sf *tester) fromStrGood1() {
 	}
 }
 
-// Строка не число
+// Строка не число.
 func (sf *tester) fromStrBad1() {
 	sf.t.Log("fromStrBad1")
 	val := NewSafeInt(0)
@@ -191,7 +191,7 @@ func (sf *tester) fromStrBad1() {
 	}
 }
 
-// Сбрасывает хранимое значение
+// Сбрасывает хранимое значение.
 func (sf *tester) reset() {
 	sf.t.Log("reset")
 	sf.si.Reset()
@@ -204,7 +204,7 @@ func (sf *tester) reset() {
 	}
 }
 
-// Установка хранимого значения
+// Установка хранимого значения.
 func (sf *tester) set() {
 	sf.t.Log("set")
 	sf.si.Set(77)
@@ -217,7 +217,7 @@ func (sf *tester) set() {
 	}
 }
 
-// Создаёт потокобезопасный булевый признак
+// Создаёт потокобезопасный булевый признак.
 func (sf *tester) new() {
 	sf.t.Log("new")
 	sf.si = NewSafeInt(0)

+ 9 - 9
v4/lev1/safe_string/safe_string.go

@@ -1,4 +1,4 @@
-// package safe_string -- потокобезопасная строка
+// package safe_string -- потокобезопасная строка.
 package safe_string
 
 import (
@@ -10,19 +10,19 @@ import (
 	. "gitp78su.ipnodns.ru/svi/kern/v4/lev1/result"
 )
 
-// safeString -- потокобезопасная строка
+// safeString -- потокобезопасная строка.
 type safeString struct {
 	sync.RWMutex
 	val string
 }
 
-// NewSafeString -- возвращает новую потокобезопасную строку
+// NewSafeString -- возвращает новую потокобезопасную строку.
 func NewSafeString() ISafeString {
 	sf := &safeString{}
 	return sf
 }
 
-// NewSafeStringGetenv -- возвращает новую потокобезопасную строку из окружения
+// NewSafeStringGetenv -- возвращает новую потокобезопасную строку из окружения.
 func NewSafeStringGetenv(env string) IResult[ISafeString] {
 	sf := NewSafeString()
 	res := sf.Getenv(env)
@@ -33,35 +33,35 @@ func NewSafeStringGetenv(env string) IResult[ISafeString] {
 	return NewRes(sf)
 }
 
-// Byte -- возвращает байтовое представление строки
+// Byte -- возвращает байтовое представление строки.
 func (sf *safeString) Byte() []byte {
 	sf.RLock()
 	defer sf.RUnlock()
 	return []byte(sf.val)
 }
 
-// Get -- возвращает хранимую строку
+// Get -- возвращает хранимую строку.
 func (sf *safeString) Get() string {
 	sf.RLock()
 	defer sf.RUnlock()
 	return sf.val
 }
 
-// Set -- устанавливает строку
+// Set -- устанавливает строку.
 func (sf *safeString) Set(val string) {
 	sf.Lock()
 	defer sf.Unlock()
 	sf.val = val
 }
 
-// Reset -- сбрасывает строку
+// Reset -- сбрасывает строку.
 func (sf *safeString) Reset() {
 	sf.Lock()
 	defer sf.Unlock()
 	sf.val = ""
 }
 
-// Getenv -- получает значение из окружения
+// Getenv -- получает значение из окружения.
 func (sf *safeString) Getenv(env string) IResult[string] {
 	strVal := os.Getenv(env)
 	if strVal == "" {

+ 11 - 11
v4/lev1/safe_string/safe_string_test.go

@@ -22,7 +22,7 @@ func TestSafeString(t *testing.T) {
 	sf.newFromEnv()
 }
 
-// Булево из окружения
+// Булево из окружения.
 func (sf *tester) newFromEnv() {
 	sf.t.Log("newFromEnv")
 	sf.newFromEnvBad1()
@@ -32,8 +32,8 @@ func (sf *tester) newFromEnv() {
 
 func (sf *tester) newFromEnvGood2() {
 	sf.t.Log("newFromEnvGood2")
-	os.Unsetenv("TEST_BOOL")
-	os.Setenv("TEST_BOOL", "false")
+	_ = os.Unsetenv("TEST_BOOL")
+	_ = os.Setenv("TEST_BOOL", "false")
 	res := NewSafeStringGetenv("TEST_BOOL")
 	if res.IsErr() {
 		sf.t.Fatalf("newFromEnvGood2(): err=%v", res.Err())
@@ -46,8 +46,8 @@ func (sf *tester) newFromEnvGood2() {
 
 func (sf *tester) newFromEnvGood1() {
 	sf.t.Log("newFromEnvGood1")
-	os.Unsetenv("TEST_BOOL")
-	os.Setenv("TEST_BOOL", "true")
+	_ = os.Unsetenv("TEST_BOOL")
+	_ = os.Setenv("TEST_BOOL", "true")
 	res := NewSafeStringGetenv("TEST_BOOL")
 	if res.IsErr() {
 		sf.t.Fatalf("newFromEnvGood1(): err=%v", res.Err())
@@ -58,18 +58,18 @@ func (sf *tester) newFromEnvGood1() {
 	}
 }
 
-// Кривое булево значение
+// Кривое булево значение.
 func (sf *tester) newFromEnvBad1() {
 	sf.t.Log("newFromEnvBad1")
-	os.Unsetenv("TEST_BOOL")
-	os.Setenv("TEST_BOOL", "")
+	_ = os.Unsetenv("TEST_BOOL")
+	_ = os.Setenv("TEST_BOOL", "")
 	res := NewSafeStringGetenv("TEST_BOOL")
 	if res.IsOk() {
 		sf.t.Fatalf("newFromEnvBad1(): err==nil")
 	}
 }
 
-// Сбрасывает хранимое значение
+// Сбрасывает хранимое значение.
 func (sf *tester) reset() {
 	sf.t.Log("reset")
 	sf.ss.Reset()
@@ -83,7 +83,7 @@ func (sf *tester) reset() {
 	_ = sf.ss.Byte()
 }
 
-// Установка хранимого значения
+// Установка хранимого значения.
 func (sf *tester) set() {
 	sf.t.Log("set")
 	sf.ss.Set("77")
@@ -96,7 +96,7 @@ func (sf *tester) set() {
 	}
 }
 
-// Создаёт потокобезопасный булевый признак
+// Создаёт потокобезопасный булевый признак.
 func (sf *tester) new() {
 	sf.t.Log("new")
 	sf.ss = NewSafeString()

+ 7 - 7
v4/lev2/kbus_base/kbus_base_test.go

@@ -46,7 +46,7 @@ func (sf *tester) unsubGood1() {
 	sf.bus.Unsubscribe(sf.handSub)
 }
 
-// Отписка от топика, нет обработчика
+// Отписка от топика, нет обработчика.
 func (sf *tester) unsubBad1() {
 	sf.t.Log("unsubBad1")
 	defer func() {
@@ -73,7 +73,7 @@ func (sf *tester) servGood1() {
 	sf.bus.RegisterServe(sf.handServ).Hassert("servGood1()")
 }
 
-// Нет обработчика для обслуживания запросов
+// Нет обработчика для обслуживания запросов.
 func (sf *tester) servBad1() {
 	sf.t.Log("servBad1")
 	res := sf.bus.RegisterServe(nil)
@@ -82,7 +82,7 @@ func (sf *tester) servBad1() {
 	}
 }
 
-// Нет такого топика
+// Нет такого топика.
 func (sf *tester) reqBad1() {
 	sf.t.Log("reqBad1")
 	res := sf.bus.SendRequest("test_topic1", []byte("test_msg"))
@@ -91,7 +91,7 @@ func (sf *tester) reqBad1() {
 	}
 }
 
-// Нет читателей топика
+// Нет читателей топика.
 func (sf *tester) pubGood10() {
 	sf.t.Log("pubGood10")
 	defer func() {
@@ -118,7 +118,7 @@ func (sf *tester) subGood1() {
 	}
 }
 
-// Нет обработчик подписки
+// Нет обработчик подписки.
 func (sf *tester) subBad1() {
 	sf.t.Log("subBad1")
 	defer func() {
@@ -129,14 +129,14 @@ func (sf *tester) subBad1() {
 	_ = sf.bus.Subscribe(nil)
 }
 
-// Создание локальной шины
+// Создание локальной шины.
 func (sf *tester) new() {
 	sf.t.Log("new")
 	sf.newGood1()
 
 }
 
-// Закрытие шины
+// Закрытие шины.
 func (sf *tester) close() {
 	sf.t.Log("close")
 	ctx := kctx.GetKernelCtx().Hassert("close()")

+ 8 - 6
v4/lev2/kbus_http/client_bus_http/client_bus_http.go

@@ -84,7 +84,7 @@ func (sf *ClientBusHttp) Unsubscribe(handler IBusHandlerSubscribe) {
 	Hassert()(err == nil, "ClientBusHttp.Unsubscribe(): in marshal to JSON unsubscribe request, err=\n\t%v", err)
 	reader := strings.NewReader(string(binReq))
 
-	hReq, err := http.NewRequest("POST", sf.urlRemote+"/bus/unsub", reader)
+	hReq, err := http.NewRequest(http.MethodPost, sf.urlRemote+"/bus/unsub", reader)
 	Hassert()(err == nil, "ClientBusHttp.Unsubscribe(): in new request, err=\n\t%v", err)
 
 	binBody, err := sf.makePost(hReq)
@@ -119,7 +119,7 @@ func (sf *ClientBusHttp) Subscribe(handler IBusHandlerSubscribe) IResult[bool] {
 	binReq, _ := json.MarshalIndent(req, "", "  ")
 	body := strings.NewReader(string(binReq))
 
-	hReq, err := http.NewRequest("POST", sf.urlRemote+"/bus/sub", body)
+	hReq, err := http.NewRequest(http.MethodPost, sf.urlRemote+"/bus/sub", body)
 	Hassert()(err == nil, "ClientBusHttp.Subscribe(): in new request, err=\n\t%v")
 
 	binBody, err := sf.makePost(hReq)
@@ -158,7 +158,7 @@ func (sf *ClientBusHttp) SendRequest(topic ATopic, binReq []byte) IResult[[]byte
 	_binReq, _ := json.MarshalIndent(req, "", "  ")
 	body := strings.NewReader(string(_binReq))
 
-	hReq, err := http.NewRequest("POST", sf.urlRemote+"/bus/request", body)
+	hReq, err := http.NewRequest(http.MethodPost, sf.urlRemote+"/bus/request", body)
 	Hassert()(err == nil, "ClientBusHttp.SendRequest(): in new request, err=\n\t%v")
 
 	binBody, err := sf.makePost(hReq)
@@ -209,7 +209,7 @@ func (sf *ClientBusHttp) Publish(topic ATopic, binMsg []byte) IResult[bool] {
 	binReq, _ := json.MarshalIndent(req, "", "  ")
 	body := strings.NewReader(string(binReq))
 
-	hReq, err := http.NewRequest("POST", sf.urlRemote+"/bus/pub", body)
+	hReq, err := http.NewRequest(http.MethodPost, sf.urlRemote+"/bus/pub", body)
 	Hassert()(err == nil, "ClientBusHttp.Publish(): in new request, err=\n\t%v")
 
 	binBody, err := sf.makePost(hReq)
@@ -242,8 +242,10 @@ func (sf *ClientBusHttp) makePost(hReq *http.Request) ([]byte, error) {
 		err := fmt.Errorf("ClientBusHttp.makePost(): after request, err=\n\t%w", err)
 		return nil, err
 	}
-	defer _resp.Body.Close()
-	if _resp.StatusCode != 200 {
+	defer func() {
+		_ = _resp.Body.Close()
+	}()
+	if _resp.StatusCode != http.StatusOK {
 		return nil, fmt.Errorf("ClientBusHttp.makePost(): url=%q, status=%q", hReq.URL, _resp.Status)
 	}
 	binBody, err := io.ReadAll(_resp.Body)

+ 2 - 2
v4/lev2/kbus_http/client_bus_http/client_bus_http_test.go

@@ -45,7 +45,7 @@ func TestClientBusHttp(t *testing.T) {
 	_ = os.Unsetenv("LOCAL_STORE_PATH")
 	_ = os.Setenv("LOCAL_STORE_PATH", pathStore)
 	_ = os.Unsetenv("LOCAL_HTTP_URL")
-	os.Setenv("LOCAL_HTTP_URL", baseUrl)
+	_ = os.Setenv("LOCAL_HTTP_URL", baseUrl)
 	fnClear := func() {
 		pwd := sf.me.Pwd() + pathStore
 		_ = os.RemoveAll(pwd)
@@ -269,7 +269,7 @@ func (sf *tester) subGood1() {
 func (sf *tester) subBad4() {
 	sf.t.Log("subBad4")
 	reader := strings.NewReader("")
-	hReq, err := http.NewRequest("POST", sf.cl.urlRemote+"/bus/pub", reader)
+	hReq, err := http.NewRequest(http.MethodPost, sf.cl.urlRemote+"/bus/pub", reader)
 	if err != nil {
 		sf.t.Fatalf("subBad4(): err=%v", err)
 	}

+ 51 - 31
v4/lev2/kbus_http/kbus_http_test.go

@@ -64,7 +64,7 @@ func (sf *tester) unsubGood2() {
 	body := strings.NewReader(string(binReq))
 	resServ := kserv_http.GetKernelServHttp()
 	fibApp := resServ.Hassert("unsubGood2").Fiber()
-	hReq, err := http.NewRequest("POST", "/bus/unsub", body)
+	hReq, err := http.NewRequest(http.MethodPost, "/bus/unsub", body)
 	if err != nil {
 		sf.t.Fatalf("unsubGood2(): err=%v", err)
 	}
@@ -74,10 +74,12 @@ func (sf *tester) unsubGood2() {
 	if err != nil {
 		sf.t.Fatalf("unsubGood2(): after request, err=%v", err)
 	}
-	if _resp.StatusCode != 200 {
+	defer func() {
+		_ = _resp.Body.Close()
+	}()
+	if _resp.StatusCode != http.StatusOK {
 		sf.t.Fatalf("unsubGood2(): statusCode(%v)!=200", _resp.StatusCode)
 	}
-	defer _resp.Body.Close()
 	binBody, _ := io.ReadAll(_resp.Body)
 	resp := &msg_unsub.UnsubResp{}
 	err = json.Unmarshal(binBody, resp)
@@ -97,7 +99,7 @@ func (sf *tester) unsubBad3() {
 	body := strings.NewReader(string(binReq))
 	resServ := kserv_http.GetKernelServHttp()
 	fibApp := resServ.Hassert("unsubBad3").Fiber()
-	hReq, err := http.NewRequest("POST", "/bus/unsub", body)
+	hReq, err := http.NewRequest(http.MethodPost, "/bus/unsub", body)
 	hReq.Header.Add("Content-Type", "application/json")
 	if err != nil {
 		sf.t.Fatalf("unsubBad3(): err=%v", err)
@@ -106,8 +108,10 @@ func (sf *tester) unsubBad3() {
 	if err != nil {
 		sf.t.Fatalf("unsubBad3(): after request, err=%v", err)
 	}
-	defer _resp.Body.Close()
-	if _resp.StatusCode == 200 {
+	defer func() {
+		_ = _resp.Body.Close()
+	}()
+	if _resp.StatusCode == http.StatusOK {
 		sf.t.Fatalf("unsubBad3(): statusCode(%v)==200", _resp.StatusCode)
 	}
 }
@@ -185,7 +189,7 @@ func (sf *tester) pubGood2() {
 	body := strings.NewReader(string(binReq))
 	resServ := kserv_http.GetKernelServHttp()
 	fibApp := resServ.Hassert("pubGood2").Fiber()
-	hReq, err := http.NewRequest("POST", "/bus/pub", body)
+	hReq, err := http.NewRequest(http.MethodPost, "/bus/pub", body)
 	hReq.Header.Add("Content-Type", "application/json")
 	if err != nil {
 		sf.t.Fatalf("pubGood2(): err=%v", err)
@@ -194,10 +198,12 @@ func (sf *tester) pubGood2() {
 	if err != nil {
 		sf.t.Fatalf("pubGood2(): after request, err=%v", err)
 	}
-	if _resp.StatusCode != 200 {
+	defer func() {
+		_ = _resp.Body.Close()
+	}()
+	if _resp.StatusCode != http.StatusOK {
 		sf.t.Fatalf("pubGood2(): statusCode(%v)!=200", _resp.StatusCode)
 	}
-	defer _resp.Body.Close()
 	binBody, _ := io.ReadAll(_resp.Body)
 	resp := &msg_pub.PublishResp{}
 	err = json.Unmarshal(binBody, resp)
@@ -217,7 +223,7 @@ func (sf *tester) pubBad3() {
 	body := strings.NewReader(string(binReq))
 	resServ := kserv_http.GetKernelServHttp()
 	fibApp := resServ.Hassert("pubBad3").Fiber()
-	hReq, err := http.NewRequest("POST", "/bus/pub", body)
+	hReq, err := http.NewRequest(http.MethodPost, "/bus/pub", body)
 	hReq.Header.Add("Content-Type", "application/json")
 	if err != nil {
 		sf.t.Fatalf("pubBad3(): err=%v", err)
@@ -226,8 +232,10 @@ func (sf *tester) pubBad3() {
 	if err != nil {
 		sf.t.Fatalf("pubBad3(): after request, err=%v", err)
 	}
-	defer _resp.Body.Close()
-	if _resp.StatusCode == 200 {
+	defer func() {
+		_ = _resp.Body.Close()
+	}()
+	if _resp.StatusCode == http.StatusOK {
 		sf.t.Fatalf("pubBad3(): statusCode(%v)==200", _resp.StatusCode)
 	}
 }
@@ -309,7 +317,7 @@ func (sf *tester) subGood2() {
 	body := strings.NewReader(string(binReq))
 	resServ := kserv_http.GetKernelServHttp()
 	fibApp := resServ.Hassert("subGood2").Fiber()
-	hReq, err := http.NewRequest("POST", "/bus/sub", body)
+	hReq, err := http.NewRequest(http.MethodPost, "/bus/sub", body)
 	hReq.Header.Add("Content-Type", "application/json")
 	if err != nil {
 		sf.t.Fatalf("subBad1(): err=%v", err)
@@ -318,10 +326,12 @@ func (sf *tester) subGood2() {
 	if err != nil {
 		sf.t.Fatalf("subBad1(): after request, err=%v", err)
 	}
-	if _resp.StatusCode != 200 {
+	defer func() {
+		_ = _resp.Body.Close()
+	}()
+	if _resp.StatusCode != http.StatusOK {
 		sf.t.Fatalf("subBad1(): statusCode(%v)!=200", _resp.StatusCode)
 	}
-	defer _resp.Body.Close()
 	binBody, _ := io.ReadAll(_resp.Body)
 	resp := &msg_sub.SubscribeResp{}
 	err = json.Unmarshal(binBody, resp)
@@ -393,7 +403,7 @@ func (sf *tester) subBad1() {
 	body := strings.NewReader(string(binReq))
 	resServ := kserv_http.GetKernelServHttp()
 	fibApp := resServ.Hassert("subBad1").Fiber()
-	hReq, err := http.NewRequest("POST", "/bus/sub", body)
+	hReq, err := http.NewRequest(http.MethodPost, "/bus/sub", body)
 	hReq.Header.Add("Content-Type", "application/json")
 	if err != nil {
 		sf.t.Fatalf("subBad1(): err=%v", err)
@@ -402,8 +412,10 @@ func (sf *tester) subBad1() {
 	if err != nil {
 		sf.t.Fatalf("subBad1(): after request, err=%v", err)
 	}
-	defer _resp.Body.Close()
-	if _resp.StatusCode != 400 {
+	defer func() {
+		_ = _resp.Body.Close()
+	}()
+	if _resp.StatusCode != http.StatusBadRequest {
 		sf.t.Fatalf("subBad1(): statusCode(%v)!=400", _resp.StatusCode)
 	}
 }
@@ -432,7 +444,7 @@ func (sf *tester) reqBad4() {
 	body := strings.NewReader(string(binReq))
 	resServ := kserv_http.GetKernelServHttp()
 	fibApp := resServ.Hassert("reqBad4").Fiber()
-	hReq, err := http.NewRequest("POST", "/bus/request", body)
+	hReq, err := http.NewRequest(http.MethodPost, "/bus/request", body)
 	hReq.Header.Add("Content-Type", "application/json")
 	if err != nil {
 		sf.t.Fatalf("reqBad4(): err=%v", err)
@@ -441,10 +453,12 @@ func (sf *tester) reqBad4() {
 	if err != nil {
 		sf.t.Fatalf("reqBad4(): after request, err=%v", err)
 	}
-	if _resp.StatusCode != 200 {
+	defer func() {
+		_ = _resp.Body.Close()
+	}()
+	if _resp.StatusCode != http.StatusOK {
 		sf.t.Fatalf("reqBad4(): statusCode(%v)!=200", _resp.StatusCode)
 	}
-	defer _resp.Body.Close()
 	binBody, _ := io.ReadAll(_resp.Body)
 	resp := &msg_serve.ServeResp{}
 	err = json.Unmarshal(binBody, resp)
@@ -467,7 +481,7 @@ func (sf *tester) reqGood1() {
 	body := strings.NewReader(string(binReq))
 	resServ := kserv_http.GetKernelServHttp()
 	fibApp := resServ.Hassert("reqGood1").Fiber()
-	hReq, err := http.NewRequest("POST", "/bus/request", body)
+	hReq, err := http.NewRequest(http.MethodPost, "/bus/request", body)
 	hReq.Header.Add("Content-Type", "application/json")
 	if err != nil {
 		sf.t.Fatalf("reqGood1(): err=%v", err)
@@ -476,10 +490,12 @@ func (sf *tester) reqGood1() {
 	if err != nil {
 		sf.t.Fatalf("reqGood1(): after request, err=%v", err)
 	}
-	if _resp.StatusCode != 200 {
+	if _resp.StatusCode != http.StatusOK {
 		sf.t.Fatalf("reqGood1(): statusCode(%v)!=200", _resp.StatusCode)
 	}
-	defer _resp.Body.Close()
+	defer func() {
+		_ = _resp.Body.Close()
+	}()
 	binBody, _ := io.ReadAll(_resp.Body)
 	resp := &msg_serve.ServeResp{}
 	err = json.Unmarshal(binBody, resp)
@@ -503,7 +519,7 @@ func (sf *tester) reqBad3() {
 	body := strings.NewReader(string(binReq))
 	resServ := kserv_http.GetKernelServHttp()
 	fibApp := resServ.Hassert("reqBad3").Fiber()
-	hReq, err := http.NewRequest("POST", "/bus/request", body)
+	hReq, err := http.NewRequest(http.MethodPost, "/bus/request", body)
 	if err != nil {
 		sf.t.Fatalf("reqBad3(): err=%v", err)
 	}
@@ -511,8 +527,10 @@ func (sf *tester) reqBad3() {
 	if err != nil {
 		sf.t.Fatalf("reqBad3(): after request, err=%v", err)
 	}
-	defer resp.Body.Close()
-	if resp.StatusCode != 400 {
+	defer func() {
+		_ = resp.Body.Close()
+	}()
+	if resp.StatusCode != http.StatusBadRequest {
 		sf.t.Fatalf("reqBad3(): statusCode(%v)!=400", resp.StatusCode)
 	}
 }
@@ -523,7 +541,7 @@ func (sf *tester) reqBad2() {
 	body := strings.NewReader("test_msg")
 	resServ := kserv_http.GetKernelServHttp()
 	fibApp := resServ.Hassert("reqBad2").Fiber()
-	hReq, err := http.NewRequest("POST", "/bus/request", body)
+	hReq, err := http.NewRequest(http.MethodPost, "/bus/request", body)
 	if err != nil {
 		sf.t.Fatalf("reqBad1(): err=%v", err)
 	}
@@ -531,8 +549,10 @@ func (sf *tester) reqBad2() {
 	if err != nil {
 		sf.t.Fatalf("reqBad1(): after request, err=%v", err)
 	}
-	defer resp.Body.Close()
-	if resp.StatusCode != 400 {
+	defer func() {
+		_ = resp.Body.Close()
+	}()
+	if resp.StatusCode != http.StatusBadRequest {
 		sf.t.Fatalf("reqBad1(): statusCode(%v)!=400", resp.StatusCode)
 	}
 }
@@ -553,7 +573,7 @@ func (sf *tester) get() {
 	sf.t.Log("get")
 	_ = MakeEnv()
 	_ = os.Unsetenv("LOCAL_HTTP_URL")
-	os.Setenv("LOCAL_HTTP_URL", "http://localhost:18312/")
+	_ = os.Setenv("LOCAL_HTTP_URL", "http://localhost:18312/")
 	_ = GetKernelBusHttp()
 	if Bus_ == nil {
 		sf.t.Fatalf("get(): bus==nil")

+ 3 - 3
v4/lev2/kbus_local/client_bus_local/client_bus_local.go

@@ -1,4 +1,4 @@
-// package client_bus_local -- клиент локальной шины
+// package client_bus_local -- клиент локальной шины.
 package client_bus_local
 
 import (
@@ -9,12 +9,12 @@ import (
 	"gitp78su.ipnodns.ru/svi/kern/v4/lev2/kbus_local"
 )
 
-// ClientBusLocal -- клиент локальной шины
+// ClientBusLocal -- клиент локальной шины.
 type ClientBusLocal struct {
 	IKernelBus
 }
 
-// NewClientBusLocal -- клиент локальной шины
+// NewClientBusLocal -- клиент локальной шины.
 func NewClientBusLocal() IResult[IBusClient] {
 	resLocal := kbus_local.GetKernelBusLocal()
 	if resLocal.IsErr() {

+ 1 - 1
v4/lev2/kmodule/kmodule_test.go

@@ -24,7 +24,7 @@ func TestKernelModule(t *testing.T) {
 	_ = os.Unsetenv("LOCAL_STORE_PATH")
 	_ = os.Setenv("LOCAL_STORE_PATH", "/store/store_module")
 	_ = os.Unsetenv("LOCAL_HTTP_URL")
-	os.Setenv("LOCAL_HTTP_URL", "http://localhost:18331/")
+	_ = os.Setenv("LOCAL_HTTP_URL", "http://localhost:18331/")
 	fnClear := func() {
 		pwd := sf.me.Pwd() + "/store/store_module"
 		_ = os.RemoveAll(pwd)

+ 1 - 1
v4/lev2/kmodule/mod_stat/mod_stat_day/mod_stat_day.go

@@ -125,7 +125,7 @@ func (sf *ModStatDay) drawNet(valMin, valMax int, cnv *svg.SVG) {
 	}
 }
 
-// Вычисляет максимальное и минимальное значение в графике
+// Вычисляет максимальное и минимальное значение в графике.
 func (sf *ModStatDay) getMinNax() (int, int) {
 	var (
 		valMin = math.MaxInt64

+ 1 - 1
v4/lev2/kmonolit/kmonolit_test.go

@@ -31,7 +31,7 @@ func TestKernMono(t *testing.T) {
 	_ = os.Unsetenv("LOCAL_STORE_PATH")
 	_ = os.Setenv("LOCAL_STORE_PATH", pathStore)
 	_ = os.Unsetenv("LOCAL_HTTP_URL")
-	os.Setenv("LOCAL_HTTP_URL", baseUrl)
+	_ = os.Setenv("LOCAL_HTTP_URL", baseUrl)
 	fnClear := func() {
 		_ = os.RemoveAll(pathStore)
 	}

+ 1 - 3
v4/lev2/kserv_http/kserv_http.go

@@ -172,9 +172,7 @@ func (sf *kServHttp) Run() {
 			err  error
 		)
 		if resp, err = client.Get(url); err == nil {
-			if resp.StatusCode == http.StatusOK {
-				defer resp.Body.Close()
-			}
+			_ = resp.Body.Close()
 		}
 		return err
 	}

+ 1 - 1
v4/lev2/kserv_http/kserv_http_test.go

@@ -78,7 +78,7 @@ func (sf *tester) newGood1() {
 	}()
 	sf.me = mock_env.MakeEnv()
 	_ = os.Unsetenv("LOCAL_HTTP_URL")
-	os.Setenv("LOCAL_HTTP_URL", baseUrl)
+	_ = os.Setenv("LOCAL_HTTP_URL", baseUrl)
 	sf.ctx.Set("monolitName", "test_monolit", "comment").Hassert("newGood1()")
 	serv := GetKernelServHttp().Hassert("newGood1()").(*kServHttp)
 	if serv != kernServHttp {

+ 1 - 1
v4/lev2/mock_hand_sub_http/mock_hand_sub_http_test.go

@@ -35,7 +35,7 @@ func TestHandlerHttpSub(t *testing.T) {
 	_ = os.Unsetenv("LOCAL_STORE_PATH")
 	_ = os.Setenv("LOCAL_STORE_PATH", pathStore)
 	_ = os.Unsetenv("LOCAL_HTTP_URL")
-	os.Setenv("LOCAL_HTTP_URL", baseUrl)
+	_ = os.Setenv("LOCAL_HTTP_URL", baseUrl)
 	fnClear := func() {
 		pwd := sf.me.Pwd() + pathStore
 		_ = os.RemoveAll(pwd)

+ 3 - 3
v4/lev2/mock_hand_sub_local/mock_hand_sub_test.go

@@ -18,7 +18,7 @@ func TestMockHandleServe(t *testing.T) {
 	sf.back()
 }
 
-// Проверка обратного вызова
+// Проверка обратного вызова.
 func (sf *tester) back() {
 	sf.t.Log("back")
 	sf.backGood1()
@@ -32,7 +32,7 @@ func (sf *tester) backGood1() {
 	}
 }
 
-// Создание мок-обработчика запросов
+// Создание мок-обработчика запросов.
 func (sf *tester) new() {
 	sf.t.Log("new")
 	sf.newBad1()
@@ -56,7 +56,7 @@ func (sf *tester) newGood1() {
 	}
 }
 
-// Нет топика для создания
+// Нет топика для создания.
 func (sf *tester) newBad1() {
 	sf.t.Log("newBad1")
 	defer func() {

+ 1 - 1
v4/lev2/wui/hx_swap/hx_swap.go

@@ -4,7 +4,7 @@ package hx_swap
 import (
 	"sync"
 
-	. "gitp78su.ipnodns.ru/svi/kern/v4/lev2/wui/wtypes"
+	. "gitp78su.ipnodns.ru/svi/kern/v4/lev2/wui/wui_types"
 )
 
 // HxSwap -- атрибут HTMX (политика замены).

+ 1 - 1
v4/lev2/wui/hx_swap_oob/hx_swap_oob.go

@@ -4,7 +4,7 @@ package hx_swap_oob
 import (
 	"sync"
 
-	. "gitp78su.ipnodns.ru/svi/kern/v4/lev2/wui/wtypes"
+	. "gitp78su.ipnodns.ru/svi/kern/v4/lev2/wui/wui_types"
 )
 
 // HxSwapOob -- объект внеполосной подкачки.

+ 1 - 1
v4/lev2/wui/hx_target/hx_target.go

@@ -4,7 +4,7 @@ package hx_target
 import (
 	"sync"
 
-	. "gitp78su.ipnodns.ru/svi/kern/v4/lev2/wui/wtypes"
+	. "gitp78su.ipnodns.ru/svi/kern/v4/lev2/wui/wui_types"
 )
 
 // HxSwap -- атрибут HTMX (цель замены).

+ 1 - 1
v4/lev2/wui/hx_trigger/hx_trigger.go

@@ -4,7 +4,7 @@ package hx_trigger
 import (
 	"sync"
 
-	. "gitp78su.ipnodns.ru/svi/kern/v4/lev2/wui/wtypes"
+	. "gitp78su.ipnodns.ru/svi/kern/v4/lev2/wui/wui_types"
 )
 
 // HxTrigger -- атрибут HTMX (триггер запроса).

Some files were not shown because too many files changed in this diff