Selaa lähdekoodia

SVI Рабочее сохранение

SVI 4 kuukautta sitten
vanhempi
commit
34a82fd683
97 muutettua tiedostoa jossa 385 lisäystä ja 384 poistoa
  1. 3 3
      v4/lev0/core_spec/eint.go
  2. 4 4
      v4/lev0/core_spec/ichan.go
  3. 8 8
      v4/lev0/core_spec/ikernel_int.go
  4. 2 2
      v4/lev0/core_spec/iresult.go
  5. 2 2
      v4/lev0/core_spec/isafe_bool.go
  6. 1 1
      v4/lev0/core_spec/isafe_bool_react.go
  7. 2 2
      v4/lev0/core_spec/isafe_string.go
  8. 16 6
      v4/lev0/defs/defs.go
  9. 14 16
      v4/lev0/result/result_test.go
  10. 3 3
      v4/lev0/voc/etime/etime.go
  11. 1 1
      v4/lev0/voc/etime/etime_test.go
  12. 2 2
      v4/lev1/kint/kint.go
  13. 6 6
      v4/lev1/kint/kint_test.go
  14. 2 2
      v4/lev1/lev1_test.go
  15. 1 1
      v4/lev1/local_ctx/ctx_value/ctx_value.go
  16. 1 1
      v4/lev1/local_ctx/ctx_value/ctx_value_test.go
  17. 5 5
      v4/lev1/local_ctx/local_ctx.go
  18. 5 5
      v4/lev1/local_ctx/local_ctx_test.go
  19. 11 11
      v4/lev1/log_buf/log_buf.go
  20. 6 6
      v4/lev1/log_buf/log_buf_test.go
  21. 5 5
      v4/lev1/log_buf/log_msg/log_msg_test.go
  22. 6 6
      v4/lev1/lst_sort/lst_sort_test.go
  23. 7 7
      v4/lev1/mock_env/mock_env.go
  24. 1 1
      v4/lev1/mock_env/mock_env_test.go
  25. 13 14
      v4/lev1/safe_bool/safe_bool.go
  26. 3 3
      v4/lev1/safe_bool/safe_bool_test.go
  27. 17 17
      v4/lev1/safe_bool_react/safe_bool_react.go
  28. 5 5
      v4/lev1/safe_bool_react/safe_bool_react_test.go
  29. 7 7
      v4/lev1/safe_int/safe_int_test.go
  30. 4 4
      v4/lev1/safe_string/safe_string.go
  31. 3 3
      v4/lev1/safe_string/safe_string_test.go
  32. 5 4
      v4/lev2/kchan/kchan.go
  33. 2 2
      v4/lev2/kctx/kctx.go
  34. 2 2
      v4/lev2/kctx/kctx_test.go
  35. 8 8
      v4/lev2/kernel_keeper/kernel_keeper.go
  36. 5 6
      v4/lev2/kmodule/kmodule.go
  37. 1 1
      v4/lev2/kmodule/mod_stat/mod_stat_day/mod_stat_day.go
  38. 1 1
      v4/lev2/kmodule/mod_stat/mod_stat_minute/mod_stat_minute.go
  39. 1 1
      v4/lev2/kmodule/mod_stat/mod_stat_sec/mod_stat_sec.go
  40. 10 11
      v4/lev2/kmonolit/kmonolit.go
  41. 2 2
      v4/lev2/kmonolit/kmonolit_test.go
  42. 13 15
      v4/lev2/kserv_http/kserv_http.go
  43. 1 1
      v4/lev2/kserv_http/kserv_http_test.go
  44. 7 7
      v4/lev2/kserv_http_std/kserv_http_std.go
  45. 7 7
      v4/lev2/kwg/kwg.go
  46. 1 1
      v4/lev2/kwg/kwg_test.go
  47. 1 2
      v4/lev2/log_topic/log_topic_test.go
  48. 10 10
      v4/lev2/lsi/kstore_kv/kstore_kv.go
  49. 3 3
      v4/lev2/lsi/kstore_kv/kstore_kv_test.go
  50. 1 1
      v4/lev2/lsi/store_ent/rec_meta/rec_meta.go
  51. 1 1
      v4/lev2/lti/bus_ent/handler_name/handler_name.go
  52. 1 1
      v4/lev2/lti/bus_ent/topic/topic.go
  53. 1 1
      v4/lev2/lti/bus_mock/mock_hand_sub_http/mock_hand_sub_http.go
  54. 3 3
      v4/lev2/lti/bus_mock/mock_hand_sub_http/mock_hand_sub_http_test.go
  55. 1 1
      v4/lev2/lti/bus_mock/mock_hand_sub_local/mock_hand_sub.go
  56. 1 1
      v4/lev2/lti/bus_mock/mock_hand_sub_local/mock_hand_sub_test.go
  57. 3 3
      v4/lev2/lti/kbus/dict_sub_hook/dict_sub_hook.go
  58. 2 2
      v4/lev2/lti/kbus/dict_sub_hook/dict_sub_hook_test.go
  59. 2 3
      v4/lev2/lti/kbus/dict_topic_serve/dict_topic_serve_test.go
  60. 2 2
      v4/lev2/lti/kbus/dict_topic_sub/dict_topic_sub_test.go
  61. 14 14
      v4/lev2/lti/kbus_http/kbus_http.go
  62. 17 17
      v4/lev2/lti/kbus_http/kbus_http_test.go
  63. 1 1
      v4/lev2/lti/kbus_local/kbus_local_test.go
  64. 1 1
      v4/lev2/wui/hx_url/hx_url_test.go
  65. 1 1
      v4/lev2/wui/hx_url_method/hx_url_method.go
  66. 1 1
      v4/lev2/wui/hx_url_method/hx_url_method_test.go
  67. 2 2
      v4/lev2/wui/hx_url_patch/hx_url_patch_test.go
  68. 2 2
      v4/lev2/wui/wui_button/wui_button.go
  69. 2 2
      v4/lev2/wui/wui_button/wui_button_test.go
  70. 2 2
      v4/lev2/wui/wui_hx/wui_hx_test.go
  71. 1 1
      v4/lev2/wui/wui_label/wui_label.go
  72. 1 2
      v4/lev2/wui/wui_label/wui_label_test.go
  73. 2 2
      v4/lev2/wui/wui_test.go
  74. 1 1
      v4/lev2/wui/wui_text/wui_text.go
  75. 2 2
      v4/lev2/wui/wui_text/wui_text_test.go
  76. 2 2
      v4/lev2/wui/wui_widget/wui_widget.go
  77. 2 1
      v4/lev3/mod_ent/mod_ent.go
  78. 4 5
      v4/lev3/mod_ent/mod_num/mod_num.go
  79. 1 1
      v4/lev3/mod_ent/module_name/module_name.go
  80. 1 1
      v4/lev3/mod_kctx/mod_kctx.go
  81. 1 1
      v4/lev3/mod_kctx/mod_kctx_test.go
  82. 1 1
      v4/lev3/mod_keeper/mod_keeper.go
  83. 3 1
      v4/lev3/mod_keeper/mod_keeper_test.go
  84. 2 2
      v4/lev3/mod_serv_http/btn_modules/btn_modules.go
  85. 2 2
      v4/lev3/mod_serv_http/btn_modules/btn_modules_test.go
  86. 1 1
      v4/lev3/mod_serv_http/btn_monolit/btn_monolit.go
  87. 2 2
      v4/lev3/mod_serv_http/btn_monolit/btn_monolit_test.go
  88. 1 1
      v4/lev3/mod_serv_http/http_api/http_api.go
  89. 2 2
      v4/lev3/mod_serv_http/http_api/http_api_test.go
  90. 1 1
      v4/lev3/mod_serv_http/mod_serv_http.go
  91. 1 1
      v4/lev3/mod_serv_http/mod_serv_http_test.go
  92. 9 9
      v4/lev3/mod_serv_http/page_module/page_module.go
  93. 12 12
      v4/lev3/mod_serv_http/page_module/page_module_test.go
  94. 5 6
      v4/lev3/mod_serv_http/page_monolit/page_monolit.go
  95. 5 5
      v4/lev3/mod_serv_http/page_monolit/page_monolit_test.go
  96. 5 6
      v4/lev3/mod_wui/mod_wui.go
  97. 8 8
      v4/lev3/mod_wui/mod_wui_test.go

+ 3 - 3
v4/lev0/core_spec/eint.go

@@ -1,11 +1,11 @@
 package core_spec
 
-import "gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs"
+import "gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs/def_spec"
 
 // EInt -- расширенное целочисленное значение.
 type EInt interface {
 	// SelfCheck -- выполняет самопроверку значения.
-	SelfCheck() IResult[error]
+	SelfCheck() def_spec.IResult[error]
 	// Get -- возвращает целочисленное значение.
-	Get() defs.Int
+	Get() def_spec.Int
 }

+ 4 - 4
v4/lev0/core_spec/ichan.go

@@ -1,15 +1,15 @@
 package core_spec
 
-import "gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs"
+import "gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs/def_spec"
 
 // IChan -- умный канал.
 type IChan[T any] interface {
 	// Read -- читает сообщение из канала.
-	Read() IResult[T]
+	Read() def_spec.IResult[T]
 	// Limit -- лимит канала.
-	Limit() defs.Int
+	Limit() def_spec.Int
 	// Len -- количество сообщений в канале.
-	Len() defs.Int
+	Len() def_spec.Int
 	// Close -- закрыть канал.
 	Close()
 	// IsClosed -- проверяет закрыт ли канал.

+ 8 - 8
v4/lev0/core_spec/ikernel_int.go

@@ -1,13 +1,13 @@
 package core_spec
 
-import "gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs"
+import "gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs/def_spec"
 
 // Int -- целочисленный тип ядра.
 type Int interface {
 	// Get -- возвращает хранимое значение потокобезопасной переменной
-	Get() defs.Int
+	Get() def_spec.Int
 	// Set -- устанавливает хранимое потокобезопасное значение
-	Set(defs.Int)
+	Set(def_spec.Int)
 	// Reset -- сбрасывает хранимое потокобезопасное значение
 	Reset()
 	// Inc -- увеличивает число на 1
@@ -15,17 +15,17 @@ type Int interface {
 	// Dec -- уменьшает число на 1
 	Dec()
 	// FromStr -- устанавливает значение из строки
-	FromStr(defs.ITxtFix) IResult[defs.Int]
+	FromStr(def_spec.ITxtFix) def_spec.IResult[def_spec.Int]
 	// ToStr -- возвращает как строку
-	ToStr() defs.ITxtFix
+	ToStr() def_spec.ITxtFix
 	// FromByte -- устанавливает значение из байтов
-	FromByte([]byte) IResult[defs.Int]
+	FromByte([]byte) def_spec.IResult[def_spec.Int]
 	// ToByte -- возвращает как срез байт
 	ToByte() []byte
 	// FromBool -- устанавливает значение из булева
-	FromBool(bool) defs.Int
+	FromBool(bool) def_spec.Int
 	// ToBool -- возвращает как булево значение
 	ToBool() bool
 	// Getenv -- устанавливает значение из окружения
-	Getenv(defs.ITxtFix) IResult[defs.Int]
+	Getenv(def_spec.ITxtFix) def_spec.IResult[def_spec.Int]
 }

+ 2 - 2
v4/lev0/core_spec/iresult.go

@@ -1,8 +1,8 @@
 package core_spec
 
 import (
-	"gitp78su.ipnodns.ru/svi/kern/v4/lev0/result"
+	"gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs/def_spec"
 )
 
 // IResult -- возвращаемый результат.
-type IResult[T any] = result.IResult[T]
+type IResult[T any] = def_spec.IResult[T]

+ 2 - 2
v4/lev0/core_spec/isafe_bool.go

@@ -11,7 +11,7 @@ type ISafeBool interface {
 	// Reset -- сбрасывает хранимое потокобезопасное значение
 	Reset()
 	// FromStr -- устанавливает значение из строки
-	FromStr(defs.ITxtFix) IResult[defs.IErr]
+	FromStr(defs.ITxtFix) IOption[defs.IErr]
 	// Getenv -- получает значение из окружения
-	Getenv(defs.ITxtFix) IResult[defs.IErr]
+	Getenv(defs.ITxtFix) IOption[defs.IErr]
 }

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

@@ -8,7 +8,7 @@ import (
 type ISafeBoolReact interface {
 	ISafeBool
 	// Add -- добавляет функцию обратного вызова
-	Add(key defs.ITxtFix, fn func(EBoolMut)) IResult[EBool]
+	Add(key defs.ITxtFix, fn func(EBoolMut)) IResult[bool]
 	// Delete -- удаляет функцию обратного вызова по ключу
 	Delete(key defs.ITxtFix)
 }

+ 2 - 2
v4/lev0/core_spec/isafe_string.go

@@ -8,9 +8,9 @@ import (
 // ISafeString -- интерфейс к потокобезопасной переменной.
 type ISafeString interface {
 	// Get -- возвращает хранимое значение потокобезопасной переменной
-	Get() def_spec.ITxtMut
+	Get() def_spec.ITxtFix
 	// Set -- устанавливает хранимое потокобезопасное значение
-	Set(def_spec.ITxtMut)
+	Set(def_spec.ITxtFix)
 	// Reset -- сбрасывает хранимое потокобезопасное значение
 	Reset()
 	// Byte -- возвращает байтовое представление строки

+ 16 - 6
v4/lev0/defs/defs.go

@@ -7,24 +7,34 @@ import (
 	"gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs/def_txt"
 )
 
-// Int -- внутренне представление числа
+// Int -- внутренне представление числа.
 type Int = def_spec.Int
 
-// ATxt -- внутренее пресдатвление текста
+// IString -- внутренне представление строки.
+type IString = def_spec.IString
+
+// ATxt -- внутренее представление текста.
 type ATxt = def_spec.ATxt
 
-// ITxtFix -- внутренне представление строки
+// ITxtFix -- внутренне представление неизменяемой строки.
 type ITxtFix = def_spec.ITxtFix
 
-// TxtFix -- возвращает новый внутренний текст
+// TxtFix -- возвращает новый неизменяемый внутренний текст.
 func TxtFix[T def_spec.TxtConstraint](msg T, arg ...any) ITxtFix {
-	sf := def_txt.Txt(msg, arg...)
+	sf := def_txt.TxtFix(msg, arg...)
 	return sf
 }
 
+// ITxtMut -- внутренне представление изменяемой строки.
+type ITxtMut = def_spec.ITxtMut
 
+// TxtMut -- возвращает новый неизменяемый внутренний текст.
+func TxtMut[T def_spec.TxtConstraint](msg T, arg ...any) ITxtMut {
+	sf := def_txt.TxtMut(msg, arg...)
+	return sf
+}
 
-// IErr -- внутренне представление ошибки
+// IErr -- внутренне представление ошибки.
 type IErr = def_spec.IErr
 
 // Err -- создать новую обёрнутую ошибку.

+ 14 - 16
v4/lev0/result/result_test.go

@@ -5,9 +5,7 @@ import (
 	"runtime"
 	"testing"
 
-	"gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs/def_err"
 	"gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs/def_spec"
-	"gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs/def_txt"
 )
 
 type tester struct {
@@ -44,7 +42,7 @@ func (sf *tester) notCheck() {
 	}
 	runtime.Gosched()
 	runtime.GC()
-	_res := res.(*Result[defs.ATxt])
+	_res := res.(*Result[def_spec.ATxt])
 	_res.destroy(_res)
 }
 
@@ -73,13 +71,13 @@ func (sf *tester) createErrGood1() {
 	if !res.IsErr() {
 		sf.t.Fatalf("createErrGood1(): not err")
 	}
-	if val := res.OkOr(fmt.Errorf("test2")); val.Get() != "test2" {
+	if val := res.OkOr(fmt.Errorf("test2")); val.Error() != "test2" {
 		sf.t.Fatalf("createErrGood1(): val bad")
 	}
-	if val := res.OkOr(fmt.Errorf("test1")); val.Get() != "test1" {
+	if val := res.OkOr(fmt.Errorf("test1")); val.Error() != "test1" {
 		sf.t.Fatalf("createErrGood1(): val bad")
 	}
-	if val := res.OkOrFn(sf.fnWrap2); val.Get() != "test5" {
+	if val := res.OkOrFn(sf.fnWrap2); val.Error() != "test5" {
 		sf.t.Fatalf("createErrGood1(): val bad")
 	}
 	if err := res.Err(); err == nil {
@@ -110,7 +108,7 @@ var (
 
 func (sf *tester) assert2() {
 	sf.t.Log("assert2")
-	err := def_err.Err("test_error")
+	err := fmt.Errorf("test_error")
 	res := NewErr[error](err)
 	defer func() {
 		if _panic := recover(); _panic == nil {
@@ -121,7 +119,7 @@ func (sf *tester) assert2() {
 }
 
 var (
-	str3 = def_err.Err("test hassert2")
+	str3 = def_spec.ATxt("test hassert2")
 )
 
 func (sf *tester) hassert2(res def_spec.IResult[error]) {
@@ -131,14 +129,14 @@ func (sf *tester) hassert2(res def_spec.IResult[error]) {
 			sf.t.Fatalf("assert(): panic==nil")
 		}
 	}()
-	_ = res.Hassert(str3.Get())
+	_ = res.Hassert(str3)
 }
 
 var (
 	str4 = def_spec.ATxt("test assert")
 )
 
-func (sf *tester) hassert(res def_spec.IResult[def_spec.IErr]) {
+func (sf *tester) hassert(res def_spec.IResult[error]) {
 	sf.t.Log("hassert")
 	defer func() {
 		if _panic := recover(); _panic == nil {
@@ -201,18 +199,18 @@ func (sf *tester) createOkGood2() {
 	if val := res.OkOrFn(sf.fnWrap); val != str {
 		sf.t.Fatalf("createOkGood1(): val bad")
 	}
-	res0 := NewErr[any](def_err.Err("test_error"))
+	res0 := NewErr[any](fmt.Errorf("test_error"))
 	if err := res0.Err(); err == nil {
 		sf.t.Fatalf("createOkGood1(): err==nil")
 	}
-	str1 := def_txt.Txt("test assert")
-	res.Hassert(str1.Get())
-	res.Assert(str1.Get())
+	str1 := def_spec.ATxt("test assert")
+	res.Hassert(str1)
+	res.Assert(str1)
 }
 
 // Функция высшего порядка для замещения ошибки.
-func (sf *tester) fnWrap2() def_spec.IErr {
-	return def_err.Err("test5")
+func (sf *tester) fnWrap2()  error {
+	return fmt.Errorf("test5")
 }
 
 // Функция высшего порядка для замещения ошибки.

+ 3 - 3
v4/lev0/voc/etime/etime.go

@@ -33,7 +33,7 @@ func NewETimeAuto() mKs.ITime {
 	sf := &ETime{
 		isFill: true,
 	}
-	val := defs.Txt(time.Now().Local().Format("2006-01-02 15:04:05.000 -07 MST"))
+	val := defs.TxtFix(time.Now().Local().Format("2006-01-02 15:04:05.000 -07 MST"))
 	sf.Set(defs.ITimeFix(val))
 	return sf
 }
@@ -44,8 +44,8 @@ func NewETimeAutoMut() mKs.ITimeMut {
 		isFill: true,
 		isMut:  true,
 	}
-	val := defs.Txt(time.Now().Local().Format("2006-01-02 15:04:05.000 -07 MST"))
-	sf.Set(defs.ITimeFix(val))
+	val := defs.TxtFix(time.Now().Local().Format("2006-01-02 15:04:05.000 -07 MST"))
+	sf.Set(val)
 	return sf
 }
 

+ 1 - 1
v4/lev0/voc/etime/etime_test.go

@@ -19,7 +19,7 @@ func TestATime(t *testing.T) {
 
 // Получение времени.
 func (t *testTime) get() {
-	a := NewETime(defs.Txt("123"))
+	a := NewETime(defs.TxtFix("123"))
 	_ = a.String()
 	_ = a.Time()
 }

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

@@ -63,7 +63,7 @@ func (sf *KernInt) FromStr(strVal defs.ITxtFix) mL0.IResult[defs.Int] {
 
 // ToStr -- возвращает как строку.
 func (sf *KernInt) ToStr() defs.ITxtFix {
-	return defs.Txt("%v", sf.val)
+	return defs.TxtFix("%v", sf.val)
 }
 
 // FromByte -- устанавливает значение из байтов (BigEndian, net order).
@@ -109,7 +109,7 @@ func (sf *KernInt) ToBool() bool {
 // Getenv -- устанавливает значение из окружения.
 func (sf *KernInt) Getenv(env defs.ITxtFix) core_spec.IResult[defs.Int] {
 	strVal := defs.ATxt(os.Getenv(env.String()))
-	res := sf.FromStr(defs.Txt(strVal))
+	res := sf.FromStr(defs.TxtFix(strVal))
 	if res.IsErr() {
 		err := defs.Err("safeInt.Getenv(): from env %v, err=\n\t%w", env, res.Err())
 		return mL0.NewErr[defs.Int](err)

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

@@ -33,13 +33,13 @@ func (sf *tester) new() {
 	sf.new3(val)
 }
 
-var testVal = defs.Txt("TEST_VAL")
+var testVal = defs.TxtFix("TEST_VAL")
 
 func (sf *tester) new3(val Int) {
 	_ = os.Unsetenv("TEST_VAL")
 	_ = os.Setenv("TEST_VAL", "57")
 	resInt := val.Getenv(testVal)
-	resInt.Hassert(defs.Txt("get env"))
+	resInt.Hassert("get env")
 	if resInt.Ok() != 57 {
 		sf.t.Fatalf("new(): isVal==true")
 	}
@@ -94,7 +94,7 @@ func (sf *tester) new2(val Int) {
 }
 
 func (sf *tester) new1(val Int) {
-	resStr := val.FromStr(defs.Txt("k26"))
+	resStr := val.FromStr(defs.TxtFix("k26"))
 	if val.Get() != 26 {
 		sf.t.Fatalf("new(): val=%v !26", val.Get())
 	}
@@ -110,7 +110,7 @@ func (sf *tester) new1(val Int) {
 		sf.t.Fatalf("new(): len=%v !8", len(binData))
 	}
 	resInt := val.FromByte(binData)
-	resInt.Hassert(defs.Txt("FromByte"))
+	resInt.Hassert("FromByte")
 
 }
 
@@ -127,9 +127,9 @@ func (sf *tester) new0(val Int) {
 	if val.Get() != 0 {
 		sf.t.Fatalf("new(): val=%v !0", val.Get())
 	}
-	resStr := val.FromStr(defs.Txt("26"))
+	resStr := val.FromStr(defs.TxtFix("26"))
 	if val.Get() != 26 {
 		sf.t.Fatalf("new(): val=%v !26", val.Get())
 	}
-	resStr.Hassert(defs.Txt("bad convert"))
+	resStr.Hassert("bad convert")
 }

+ 2 - 2
v4/lev1/lev1_test.go

@@ -25,7 +25,7 @@ func TestLev1(t *testing.T) {
 
 func (sf *tester) newSafeIntGetenv() {
 	sf.t.Log("newSafeIntGetenv")
-	safeInt := NewSafeIntGetenv(defs.Txt("test_env"))
+	safeInt := NewSafeIntGetenv(defs.TxtFix("test_env"))
 	if safeInt == nil {
 		sf.t.Fatalf("newSafeIntGetenv(): safeInt==nil")
 	}
@@ -33,7 +33,7 @@ func (sf *tester) newSafeIntGetenv() {
 
 func (sf *tester) newSafeIntFromStr() {
 	sf.t.Log("newSafeIntFromStr")
-	safeInt := NewSafeIntFromStr(defs.Txt("123"))
+	safeInt := NewSafeIntFromStr(defs.TxtFix("123"))
 	if safeInt == nil {
 		sf.t.Fatalf("newSafeIntFromStr(): safeInt==nil")
 	}

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

@@ -43,7 +43,7 @@ func NewCtxValue(key defs.ITxtFix, val any, comment any) ICtxValue {
 		createAt:  etime.NewETimeAuto(),
 		UpdateAt_: etime.NewETimeAutoMut(),
 		Val_:      val,
-		Comment_:  defs.Txt("%v", comment),
+		Comment_:  defs.TxtFix("%v", comment),
 	}
 	return sf
 }

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

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

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

@@ -58,7 +58,7 @@ func NewLocalCtx(ctx context.Context) ILocalCtx {
 	_ctx, fnCancel := context.WithCancel(ctx)
 	paramLogBuf := &log_buf.LogBufParam{
 		IsTerm_: safe_bool.NewSafeBool(true),
-		Prefix_: defs.Txt("LocalCtx"),
+		Prefix_: defs.TxtFix("LocalCtx"),
 	}
 	sf := &LocalCtx{
 		ctx:      _ctx,
@@ -99,7 +99,7 @@ func (sf *LocalCtx) Get(key defs.ITxtFix) mL0.IOption[comp_spec.ICtxValue] {
 	if key.Get() == "" {
 		return mL0.NewNone[comp_spec.ICtxValue]()
 	}
-	msg := defs.Txt("Get(): key='%v'", key)
+	msg := defs.TxtFix("Get(): key='%v'", key)
 	sf.log.Debug(msg)
 	val, isOk := sf.dictVal[key.Get()]
 	if !isOk {
@@ -112,7 +112,7 @@ func (sf *LocalCtx) Get(key defs.ITxtFix) mL0.IOption[comp_spec.ICtxValue] {
 func (sf *LocalCtx) Del(key defs.ITxtFix) {
 	sf.Lock()
 	defer sf.Unlock()
-	msg := defs.Txt("Del(): key='%v'", key)
+	msg := defs.TxtFix("Del(): key='%v'", key)
 	sf.log.Debug(msg)
 	val := sf.dictVal[key.Get()]
 	delete(sf.dictVal, key.Get())
@@ -123,7 +123,7 @@ func (sf *LocalCtx) Del(key defs.ITxtFix) {
 func (sf *LocalCtx) Set(key defs.ITxtFix, val any, comment any) {
 	sf.Lock()
 	defer sf.Unlock()
-	msg := defs.Txt("Set(): key='%v'", key)
+	msg := defs.TxtFix("Set(): key='%v'", key)
 	sf.log.Debug(msg)
 	_val, isOk := sf.dictVal[key.Get()]
 	if isOk {
@@ -146,6 +146,6 @@ func (sf *LocalCtx) Wait() {
 
 // Cancel -- отменяет контекст.
 func (sf *LocalCtx) Cancel() {
-	sf.log.Warn(defs.Txt("Cancel()"))
+	sf.log.Warn(defs.TxtFix("Cancel()"))
 	sf.fnCancel()
 }

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

@@ -34,15 +34,15 @@ func (sf *tester) done() {
 // Удаляет несуществующий ключ из локального контекста.
 func (sf *tester) del() {
 	sf.t.Log("del")
-	sf.lCtx.Del(defs.Txt("123"))
-	sf.lCtx.Del(defs.Txt("count"))
+	sf.lCtx.Del(defs.TxtFix("123"))
+	sf.lCtx.Del(defs.TxtFix("count"))
 }
 
 // Возвращает хранимое значение.
 func (sf *tester) get() {
 	sf.t.Log("get")
-	optRes := sf.lCtx.Get(defs.Txt("count"))
-	ctxVal := optRes.Hassert(defs.Txt("get()"))
+	optRes := sf.lCtx.Get(defs.TxtFix("count"))
+	ctxVal := optRes.Hassert("get()")
 	count := ctxVal.Val().(int)
 	if count == 15 {
 		return
@@ -52,7 +52,7 @@ func (sf *tester) get() {
 // Устанавливает значение.
 func (sf *tester) set() {
 	sf.t.Log("set")
-	msg := defs.Txt("count")
+	msg := defs.TxtFix("count")
 	sf.lCtx.Set(msg, 5, "test_val")
 	sf.lCtx.Set(msg, 15, "test_val1")
 }

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

@@ -69,7 +69,7 @@ func NewLogBuf(param *LogBufParam) ILogBuf {
 		lstErr:      []log_msg.ILogMsg{},
 	}
 	pref := sf.Prefix_.Get() + defs.ATxt(".")
-	sf.Prefix_ = defs.Txt(pref)
+	sf.Prefix_ = defs.TxtFix(pref)
 	return sf
 }
 
@@ -84,9 +84,9 @@ func (sf *LogBuf) GetErr(num defs.Int) log_msg.ILogMsg {
 	defer sf.RUnlock()
 	if len(sf.lstErr) == 0 {
 		msg := sf.Prefix_.Get() + "not error msg"
-		return log_msg.NewLogMsg(log_msg.DEBUG, defs.Txt(msg))
+		return log_msg.NewLogMsg(log_msg.DEBUG, defs.TxtFix(msg))
 	}
-	if num.Int() >= len(sf.lstErr) {
+	if int(num) >= len(sf.lstErr) {
 		return sf.lstErr[len(sf.lstErr)-1]
 	}
 	if num <= 0 {
@@ -101,13 +101,13 @@ func (sf *LogBuf) Get(num defs.Int) log_msg.ILogMsg {
 	defer sf.RUnlock()
 	msg := sf.Prefix_.Get() + "*no msg*"
 	if len(sf.lst) == 0 {
-		return log_msg.NewLogMsg(log_msg.DEBUG, defs.Txt(msg))
+		return log_msg.NewLogMsg(log_msg.DEBUG, defs.TxtFix(msg))
 	}
-	if num.Int() >= len(sf.lst) {
-		return log_msg.NewLogMsg(log_msg.DEBUG, defs.Txt(msg))
+	if int(num) >= len(sf.lst) {
+		return log_msg.NewLogMsg(log_msg.DEBUG, defs.TxtFix(msg))
 	}
 	if num <= 0 {
-		return log_msg.NewLogMsg(log_msg.DEBUG, defs.Txt(msg))
+		return log_msg.NewLogMsg(log_msg.DEBUG, defs.TxtFix(msg))
 	}
 	return sf.lst[num]
 }
@@ -118,7 +118,7 @@ func (sf *LogBuf) Debug(fTxt defs.ITxtFix, args ...any) {
 	defer sf.Unlock()
 	strMsg := fmt.Sprintf(fTxt.String(), args...)
 	msg := sf.Prefix_.Get() + defs.ATxt(strMsg)
-	_msg := log_msg.NewLogMsg(log_msg.DEBUG, defs.Txt(msg))
+	_msg := log_msg.NewLogMsg(log_msg.DEBUG, defs.TxtFix(msg))
 	sf.lst = append(sf.lst, _msg)
 	sf.checkLen()
 	sf.printTerm(_msg)
@@ -130,7 +130,7 @@ func (sf *LogBuf) Info(fMsg defs.ITxtFix, args ...any) {
 	defer sf.Unlock()
 	strMsg := fmt.Sprintf(fMsg.String(), args...)
 	msg := sf.Prefix_.Get() + defs.ATxt(strMsg)
-	_msg := log_msg.NewLogMsg(log_msg.INFO, defs.Txt(msg))
+	_msg := log_msg.NewLogMsg(log_msg.INFO, defs.TxtFix(msg))
 	sf.lst = append(sf.lst, _msg)
 	sf.checkLen()
 	sf.printTerm(_msg)
@@ -142,7 +142,7 @@ func (sf *LogBuf) Warn(fMsg defs.ITxtFix, args ...any) {
 	defer sf.Unlock()
 	strMsg := fmt.Sprintf(fMsg.String(), args...)
 	msg := sf.Prefix_.Get() + defs.ATxt(strMsg)
-	_msg := log_msg.NewLogMsg(log_msg.WARN, defs.Txt(msg))
+	_msg := log_msg.NewLogMsg(log_msg.WARN, defs.TxtFix(msg))
 	sf.lst = append(sf.lst, _msg)
 	sf.checkLen()
 	sf.printTerm(_msg)
@@ -154,7 +154,7 @@ func (sf *LogBuf) Err(err defs.IErr, args ...any) {
 	defer sf.Unlock()
 	strMsg := fmt.Sprintf(err.String(), args...)
 	msg := sf.Prefix_.Get() + defs.ATxt(strMsg)
-	_msg := log_msg.NewLogMsg(log_msg.ERROR, defs.Txt(msg))
+	_msg := log_msg.NewLogMsg(log_msg.ERROR, defs.TxtFix(msg))
 	sf.lst = append(sf.lst, _msg)
 	sf.lstErr = append(sf.lstErr, _msg)
 	sf.checkLen()

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

@@ -25,7 +25,7 @@ func (sf *tester) new() {
 	sf.t.Log("new")
 	param := &LogBufParam{
 		IsTerm_: safe_bool.NewSafeBool(true),
-		Prefix_: defs.Txt("tester"),
+		Prefix_: defs.TxtFix("tester"),
 	}
 	sf.log = NewLogBuf(param)
 	if sf.log == nil {
@@ -36,11 +36,11 @@ func (sf *tester) new() {
 	if msg == nil {
 		sf.t.Fatalf("new(): msg==nil")
 	}
-	_msg := defs.Txt("test msg: %v", 45)
+	_msg := defs.TxtFix("test msg: %v", 45)
 	sf.log.Debug(_msg)
-	_msg = defs.Txt("test msg: %v", 46)
+	_msg = defs.TxtFix("test msg: %v", 46)
 	sf.log.Info(_msg)
-	_msg = defs.Txt("test msg: %v", 47)
+	_msg = defs.TxtFix("test msg: %v", 47)
 	sf.log.Warn(_msg)
 	for i := range 120 {
 		err := defs.Err("test err: %v", i)
@@ -57,7 +57,7 @@ func (sf *tester) new() {
 	_ = sf.log.Size()
 
 	sf.log.IsTerm().Reset()
-	_msg = defs.Txt("test msg: %v", 47)
+	_msg = defs.TxtFix("test msg: %v", 47)
 	sf.log.Warn(_msg)
 
 	sf.log.IsTerm().Set()
@@ -65,5 +65,5 @@ func (sf *tester) new() {
 
 	helpers.IsStageProd = true
 	sf.log.Warn(_msg)
-	sf.log.Debug(defs.Txt("test msg: %v", 45))
+	sf.log.Debug(defs.TxtFix("test msg: %v", 45))
 }

+ 5 - 5
v4/lev1/log_buf/log_msg/log_msg_test.go

@@ -27,10 +27,10 @@ func (sf *tester) new() {
 
 func (sf *tester) newGood1() {
 	sf.t.Log("newGood1")
-	_ = NewLogMsg(-3, defs.Txt("test msg -3"))
-	_ = NewLogMsg(-2, defs.Txt("test msg -2"))
-	_ = NewLogMsg(-1, defs.Txt("test msg -1"))
-	msg := NewLogMsg(0, defs.Txt("test msg 0"))
+	_ = NewLogMsg(-3, defs.TxtFix("test msg -3"))
+	_ = NewLogMsg(-2, defs.TxtFix("test msg -2"))
+	_ = NewLogMsg(-1, defs.TxtFix("test msg -1"))
+	msg := NewLogMsg(0, defs.TxtFix("test msg 0"))
 	if msg := msg.Msg(); msg.Get() != "test msg 0" {
 		sf.t.Fatalf("newGood1(): msg(%v)!='test msg 0'", msg)
 	}
@@ -53,5 +53,5 @@ func (sf *tester) newBad1() {
 			sf.t.Fatalf("newBad1(): panic==nil")
 		}
 	}()
-	_ = NewLogMsg(-10, defs.Txt("test msg"))
+	_ = NewLogMsg(-10, defs.TxtFix("test msg"))
 }

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

@@ -26,7 +26,7 @@ func TestLstSort(t *testing.T) {
 // Нет такого элемента.
 func (sf *tester) del3() {
 	sf.t.Log("del3")
-	val5 := ctx_value.NewCtxValue(defs.Txt("val5"), 5, defs.Txt("test 5"))
+	val5 := ctx_value.NewCtxValue(defs.TxtFix("val5"), 5, defs.TxtFix("test 5"))
 	sf.lst.Del(val5)
 	sf.lst.Del(nil)
 }
@@ -73,11 +73,11 @@ func (sf *tester) del() {
 // Добавление элементов в список.
 func (sf *tester) add() {
 	sf.t.Log("add")
-	val0 := ctx_value.NewCtxValue(defs.Txt("val0"), 0, defs.Txt("test 0"))
-	val1 := ctx_value.NewCtxValue(defs.Txt("val1"), 1, defs.Txt("test 1"))
-	val2 := ctx_value.NewCtxValue(defs.Txt("val2"), 2, defs.Txt("test 2"))
-	val3 := ctx_value.NewCtxValue(defs.Txt("val3"), 3, defs.Txt("test 3"))
-	val4 := ctx_value.NewCtxValue(defs.Txt("val4"), 4, defs.Txt("test 4"))
+	val0 := ctx_value.NewCtxValue(defs.TxtFix("val0"), 0, defs.TxtFix("test 0"))
+	val1 := ctx_value.NewCtxValue(defs.TxtFix("val1"), 1, defs.TxtFix("test 1"))
+	val2 := ctx_value.NewCtxValue(defs.TxtFix("val2"), 2, defs.TxtFix("test 2"))
+	val3 := ctx_value.NewCtxValue(defs.TxtFix("val3"), 3, defs.TxtFix("test 3"))
+	val4 := ctx_value.NewCtxValue(defs.TxtFix("val4"), 4, defs.TxtFix("test 4"))
 	sf.lst.Add(val1)
 	sf.lst.Add(val4)
 	sf.lst.Add(val0)

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

@@ -46,7 +46,7 @@ func (sf *MockEnv) parseEnv() {
 		if strings.HasPrefix(val, "#") {
 			continue
 		}
-		sf.parseEnvStr(defs.Txt(pair))
+		sf.parseEnvStr(defs.TxtFix(pair))
 	}
 }
 
@@ -65,14 +65,14 @@ func (sf *MockEnv) parseEnvStr(pair defs.ITxtFix) {
 	val = strings.TrimSuffix(val, "=")
 
 	helpers.Hassert(val != "", "MockEnv.parseEnvStr(): in pair(%v) val is empty", []any{pair})
-	sf.dictEnv[defs.ATxt(key)] = defs.Txt(val)
+	sf.dictEnv[defs.ATxt(key)] = defs.TxtFix(val)
 }
 
 // Читает файл переменных окружения.
 func (sf *MockEnv) readEnv() {
 	binEnv, err := os.ReadFile(sf.fileName.String())
 	helpers.Hassert(err == nil, "MockEnv.readEnv(): in read %v, err=\n\t%v", []any{sf.fileName, err})
-	sf.strEnv = defs.Txt(string(binEnv))
+	sf.strEnv = defs.TxtFix(string(binEnv))
 }
 
 // Устанавливает текущий путь относительно проекта в dev.
@@ -93,12 +93,12 @@ func (sf *MockEnv) setPath() {
 		}
 	}
 	helpers.Hassert(isFind, "MockEnv.setPath(): not find file .env", []any{})
-	sf.pwd = defs.Txt(pwd.String() + "/bin_dev")
+	sf.pwd = defs.TxtFix(pwd.String() + "/bin_dev")
 	err = os.MkdirAll(sf.pwd.String(), 0750)
 	helpers.Hassert(err == nil, "MockEnv.setPath(): in create PWD, err=\n\t%v", []any{err})
 	err = os.Chdir(sf.pwd.String())
 	helpers.Hassert(err == nil, "MockEnv.setPath(): in set cwd(%v), err=\n\t%v", []any{sf.pwd, err})
-	sf.fileName = defs.Txt(fileName)
+	sf.fileName = defs.TxtFix(fileName)
 }
 
 // Pwd -- возвращает текущий рабочий каталог процесса.
@@ -110,7 +110,7 @@ func (sf *MockEnv) Pwd() defs.ITxtFix {
 func (sf *MockEnv) SetAll() error {
 	sf.ResetAll()
 	for key, val := range sf.dictEnv {
-		sf.Reset(defs.Txt("key"))
+		sf.Reset(defs.TxtFix("key"))
 		err := os.Setenv(string(key), val.String())
 		helpers.Hassert(err == nil, "MockEnv.SetAll(): in set env %v on key %v, err=\n\t%v", []any{key, val, err})
 	}
@@ -120,7 +120,7 @@ func (sf *MockEnv) SetAll() error {
 // ResetAll -- сбрасывает все переменные окружения.
 func (sf *MockEnv) ResetAll() {
 	for key := range sf.dictEnv {
-		sf.Reset(defs.Txt(key))
+		sf.Reset(defs.TxtFix(key))
 	}
 }
 

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

@@ -37,7 +37,7 @@ func (sf *tester) resetBad1() {
 			sf.t.Fatalf("resetBad1(): panic=%v", pan)
 		}
 	}()
-	sf.me.Reset(defs.Txt(""))
+	sf.me.Reset(defs.TxtFix(""))
 }
 
 // Создание мок-окружения.

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

@@ -9,7 +9,6 @@ import (
 	mL0 "gitp78su.ipnodns.ru/svi/kern/v4/lev0"
 	"gitp78su.ipnodns.ru/svi/kern/v4/lev0/core_spec"
 	"gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs"
-	"gitp78su.ipnodns.ru/svi/kern/v4/lev0/etypes/ebool"
 )
 
 // safeBool -- потокобезопасный булевый признак.
@@ -30,8 +29,8 @@ func NewSafeBool(val bool) core_spec.ISafeBool {
 func NewSafeBoolFromStr(strVal defs.ITxtFix) mL0.IResult[core_spec.ISafeBool] {
 	sf := NewSafeBool(false)
 	res := sf.FromStr(strVal)
-	if res.IsErr() {
-		err := defs.Err("NewSafeBoolFromStr(): in parse str(%v), err=\n\t%w", strVal, res.Err())
+	if res.IsSome() {
+		err := defs.Err("NewSafeBoolFromStr(): in parse str(%v), err=\n\t%w", strVal, res.Some().Get())
 		return mL0.NewErr[core_spec.ISafeBool](err)
 	}
 	return mL0.NewOk(sf)
@@ -41,8 +40,8 @@ func NewSafeBoolFromStr(strVal defs.ITxtFix) mL0.IResult[core_spec.ISafeBool] {
 func NewSafeBoolGetenv(env defs.ITxtFix) core_spec.IResult[core_spec.ISafeBool] {
 	sf := NewSafeBool(false)
 	res := sf.Getenv(env)
-	if res.IsErr() {
-		err := defs.Err("NewSafeBoolGetenv(): in parse env(%v), err=\n\t%w", env, res.Err())
+	if res.IsSome() {
+		err := defs.Err("NewSafeBoolGetenv(): in parse env(%v), err=\n\t%w", env, res.Some().Get())
 		return mL0.NewErr[core_spec.ISafeBool](err)
 	}
 	return mL0.NewOk(sf)
@@ -70,7 +69,7 @@ func (sf *safeBool) Reset() {
 }
 
 // FromStr -- получает число из строки.
-func (sf *safeBool) FromStr(strVal defs.ITxtFix) core_spec.IResult[core_spec.EBool] {
+func (sf *safeBool) FromStr(strVal defs.ITxtFix) core_spec.IOption[defs.IErr] {
 	_strVal := strings.ToLower(strVal.String())
 	sf.Lock()
 	defer sf.Unlock()
@@ -81,18 +80,18 @@ func (sf *safeBool) FromStr(strVal defs.ITxtFix) core_spec.IResult[core_spec.EBo
 		sf.val = false
 	default:
 		err := defs.Err("safeBool.FromStr(): val(%v) bad", strVal)
-		return mL0.NewErr[core_spec.EBool](err)
+		return mL0.NewSome(err)
 	}
-	return mL0.NewOk(ebool.NewEBool(sf.val))
+	return mL0.NewNone[defs.IErr]()
 }
 
 // Getenv -- получает значение из окружения.
-func (sf *safeBool) Getenv(env defs.ITxtFix) mL0.IResult[core_spec.EBool] {
+func (sf *safeBool) Getenv(env defs.ITxtFix) mL0.IOption[defs.IErr] {
 	strVal := defs.ATxt(os.Getenv(env.String()))
-	res := sf.FromStr(defs.Txt(strVal))
-	if res.IsErr() {
-		err := defs.Err("safeBool.Getenv(): from env %v, err=\n\t%w", env, res.Err())
-		return mL0.NewErr[core_spec.EBool](err)
+	res := sf.FromStr(defs.TxtFix(strVal))
+	if res.IsSome() {
+		err := defs.Err("safeBool.Getenv(): from env %v, err=\n\t%w", env, res.Some().Get())
+		return mL0.NewSome(err)
 	}
-	return res
+	return mL0.NewNone[defs.IErr]()
 }

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

@@ -33,7 +33,7 @@ func (sf *tester) newFromStr() {
 
 func (sf *tester) newFromStrGood1() {
 	sf.t.Log("newFromStrGood1")
-	res := NewSafeBoolFromStr(defs.Txt("tRuE"))
+	res := NewSafeBoolFromStr(defs.TxtFix("tRuE"))
 	if res.IsErr() {
 		sf.t.Fatalf("newFromStrGood1(): err=%v", res.Err())
 	}
@@ -46,7 +46,7 @@ func (sf *tester) newFromStrGood1() {
 // Кривое булево значение.
 func (sf *tester) newFromStrBad1() {
 	sf.t.Log("newFromStrBad1")
-	res := NewSafeBoolFromStr(defs.Txt("0"))
+	res := NewSafeBoolFromStr(defs.TxtFix("0"))
 	if res.IsOk() {
 		sf.t.Fatalf("newFromStrBad1(): err==nil")
 	}
@@ -60,7 +60,7 @@ func (sf *tester) newFromEnv() {
 	sf.newFromEnvGood2()
 }
 
-var testBool = defs.Txt("TEST_BOOL")
+var testBool = defs.TxtFix("TEST_BOOL")
 
 func (sf *tester) newFromEnvGood2() {
 	sf.t.Log("newFromEnvGood2")

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

@@ -31,8 +31,8 @@ func NewSafeBoolReact() core_spec.ISafeBoolReact {
 func NewSafeBoolReactFromStr(strVal defs.ITxtFix) mL0.IResult[core_spec.ISafeBoolReact] {
 	sf := NewSafeBoolReact()
 	res := sf.FromStr(strVal)
-	if res.IsErr() {
-		err := defs.Err("NewSafeBoolReactFromStr(): in parse str(%v), err=\n\t%w", strVal, res.Err())
+	if res.IsSome() {
+		err := defs.Err("NewSafeBoolReactFromStr(): in parse str(%v), err=\n\t%w", strVal, res.Some().Get())
 		return mL0.NewErr[core_spec.ISafeBoolReact](err)
 	}
 	return mL0.NewOk(sf)
@@ -42,8 +42,8 @@ func NewSafeBoolReactFromStr(strVal defs.ITxtFix) mL0.IResult[core_spec.ISafeBoo
 func NewSafeBoolGetenv(env defs.ITxtFix) mL0.IResult[core_spec.ISafeBoolReact] {
 	sf := NewSafeBoolReact()
 	res := sf.Getenv(env)
-	if res.IsErr() {
-		err := defs.Err("NewSafeBoolGetenv(): in parse env(%v), err=\n\t%w", env, res.Err())
+	if res.IsSome() {
+		err := defs.Err("NewSafeBoolGetenv(): in parse env(%v), err=\n\t%w", env, res.Some().Get())
 		return mL0.NewErr[core_spec.ISafeBoolReact](err)
 	}
 	return mL0.NewOk(sf)
@@ -57,20 +57,20 @@ func (sf *safeBoolReact) Delete(key defs.ITxtFix) {
 }
 
 // Add -- добавляет функцию обратного вызова.
-func (sf *safeBoolReact) Add(key defs.ITxtFix, fn func(core_spec.EBoolMut)) mL0.IResult[core_spec.EBool] {
+func (sf *safeBoolReact) Add(key defs.ITxtFix, fn func(core_spec.EBoolMut)) mL0.IResult[bool] {
 	sf.Lock()
 	defer sf.Unlock()
 	if key.Get() == "" {
 		err := defs.Err("safeBoolReact.Add(): key is empty")
-		return mL0.NewErr[core_spec.EBool](err)
+		return mL0.NewErr[bool](err)
 	}
 	_, isOk := sf.dict[key]
 	if isOk {
 		err := defs.Err("safeBoolReact.Add(): key(%v) already exists", key)
-		return mL0.NewErr[core_spec.EBool](err)
+		return mL0.NewErr[bool](err)
 	}
 	sf.dict[key] = fn
-	return mL0.NewOk(ebool.NewEBool(true))
+	return mL0.NewOk((true))
 }
 
 // Get -- возвращает хранимый булевый признак.
@@ -101,7 +101,7 @@ func (sf *safeBoolReact) Reset() {
 }
 
 // FromStr -- получает число из строки.
-func (sf *safeBoolReact) FromStr(strVal defs.ITxtFix) core_spec.IResult[core_spec.EBool] {
+func (sf *safeBoolReact) FromStr(strVal defs.ITxtFix) core_spec.IOption[defs.IErr] {
 	_strVal := strings.ToLower(strVal.String())
 	sf.Lock()
 	defer sf.Unlock()
@@ -112,18 +112,18 @@ func (sf *safeBoolReact) FromStr(strVal defs.ITxtFix) core_spec.IResult[core_spe
 		sf.val = false
 	default:
 		err := defs.Err("safeBoolReact.FromStr(): val(%v) bad", strVal)
-		return mL0.NewErr[core_spec.EBool](err)
+		return mL0.NewSome(err)
 	}
-	return mL0.NewOk(ebool.NewEBool(sf.val))
+	return mL0.NewNone[defs.IErr]()
 }
 
 // Getenv -- получает значение из окружения.
-func (sf *safeBoolReact) Getenv(env defs.ITxtFix) mL0.IResult[core_spec.EBool] {
+func (sf *safeBoolReact) Getenv(env defs.ITxtFix) mL0.IOption[defs.IErr] {
 	strVal := defs.ATxt(os.Getenv(env.String()))
-	res := sf.FromStr(defs.Txt(strVal))
-	if res.IsErr() {
-		err := defs.Err("safeBoolReact.Getenv(): from env %v, err=\n\t%w", env, res.Err())
-		return mL0.NewErr[core_spec.EBool](err)
+	res := sf.FromStr(defs.TxtFix(strVal))
+	if res.IsSome() {
+		err := defs.Err("safeBoolReact.Getenv(): from env %v, err=\n\t%w", env, res.Some().Get())
+		return mL0.NewSome[defs.IErr](err)
 	}
-	return res
+	return mL0.NewNone[defs.IErr]()
 }

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

@@ -36,7 +36,7 @@ func (sf *tester) newFromStr() {
 
 func (sf *tester) newFromStrGood1() {
 	sf.t.Log("newFromStrGood1")
-	res := NewSafeBoolReactFromStr(defs.Txt("tRuE"))
+	res := NewSafeBoolReactFromStr(defs.TxtFix("tRuE"))
 	if res.IsErr() {
 		sf.t.Fatalf("newFromStrGood1(): err=%v", res.Err())
 	}
@@ -49,7 +49,7 @@ func (sf *tester) newFromStrGood1() {
 // Кривое булево значение.
 func (sf *tester) newFromStrBad1() {
 	sf.t.Log("newFromStrBad1")
-	res := NewSafeBoolReactFromStr(defs.Txt("0"))
+	res := NewSafeBoolReactFromStr(defs.TxtFix("0"))
 	if res.IsOk() {
 		sf.t.Fatalf("newFromStrBad1(): err==nil")
 	}
@@ -63,7 +63,7 @@ func (sf *tester) newFromEnv() {
 	sf.newFromEnvGood2()
 }
 
-var testBool = defs.Txt("TEST_BOOL")
+var testBool = defs.TxtFix("TEST_BOOL")
 
 func (sf *tester) newFromEnvGood2() {
 	sf.t.Log("newFromEnvGood2")
@@ -104,7 +104,7 @@ func (sf *tester) newFromEnvBad1() {
 	}
 }
 
-var txtTest = defs.Txt("test")
+var txtTest = defs.TxtFix("test")
 
 // Удаляет функцию обратного вызова.
 func (sf *tester) del() {
@@ -120,7 +120,7 @@ func (sf *tester) del() {
 // Добавляет функцию обратного вызова.
 func (sf *tester) add() {
 	sf.t.Log("add")
-	sf.sbr.Add(txtTest, sf.fnBack).Hassert(defs.Txt("add()"))
+	sf.sbr.Add(txtTest, sf.fnBack).Hassert("add()")
 }
 
 // Функция обратного вызова для контроля.

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

@@ -44,7 +44,7 @@ func (sf *tester) byte() {
 		sf.t.Fatalf("byte(): len val(%v)!='123''", len(binData))
 	}
 	resVal := res.FromByte(binData)
-	resVal.Hassert(defs.Txt("from []byte"))
+	resVal.Hassert("from []byte")
 	val := resVal.Ok()
 	if val != 1234 {
 		sf.t.Fatalf("byte(): val(%v)!=1234", val)
@@ -99,11 +99,11 @@ func (sf *tester) inc() {
 // Получает целое из строки.
 func (sf *tester) newFromStr() {
 	sf.t.Log("newFromStr")
-	res := NewSafeIntFromStr(defs.Txt("-a52"))
+	res := NewSafeIntFromStr(defs.TxtFix("-a52"))
 	if res.IsOk() {
 		sf.t.Fatalf("newFromStr(): err==nil")
 	}
-	res = NewSafeIntFromStr(defs.Txt("-60"))
+	res = NewSafeIntFromStr(defs.TxtFix("-60"))
 	if res.IsErr() {
 		sf.t.Fatalf("newFromStr(): err=%v", res.Err())
 	}
@@ -112,7 +112,7 @@ func (sf *tester) newFromStr() {
 	}
 }
 
-var testEnv2 = defs.Txt("TEST_ENV2")
+var testEnv2 = defs.TxtFix("TEST_ENV2")
 
 // Получает целое из окружения.
 func (sf *tester) newGetenv() {
@@ -139,7 +139,7 @@ func (sf *tester) getEnv() {
 	sf.getEnvGood1()
 }
 
-var testVal = defs.Txt("TEST_VAL")
+var testVal = defs.TxtFix("TEST_VAL")
 
 func (sf *tester) getEnvGood1() {
 	sf.t.Log("getEnvGood1")
@@ -177,7 +177,7 @@ func (sf *tester) fromStr() {
 func (sf *tester) fromStrGood1() {
 	sf.t.Log("fromStrGood1")
 	val := NewSafeInt(0)
-	res := val.FromStr(defs.Txt("45"))
+	res := val.FromStr(defs.TxtFix("45"))
 	if res.IsErr() {
 		sf.t.Fatalf("fromStrGood1(): err=%v", res.Err())
 	}
@@ -190,7 +190,7 @@ func (sf *tester) fromStrGood1() {
 func (sf *tester) fromStrBad1() {
 	sf.t.Log("fromStrBad1")
 	val := NewSafeInt(0)
-	res := val.FromStr(defs.Txt(" "))
+	res := val.FromStr(defs.TxtFix(" "))
 	if res.IsOk() {
 		sf.t.Fatalf("fromStrBad1(): res==ok")
 	}

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

@@ -41,17 +41,17 @@ func (sf *safeString) Byte() []byte {
 }
 
 // Get -- возвращает хранимую строку.
-func (sf *safeString) Get() defs.ITxtMut {
+func (sf *safeString) Get() defs.ITxtFix {
 	sf.RLock()
 	defer sf.RUnlock()
 	return sf.val
 }
 
 // Set -- устанавливает строку.
-func (sf *safeString) Set(val defs.ITxtMut) {
+func (sf *safeString) Set(val defs.ITxtFix) {
 	sf.Lock()
 	defer sf.Unlock()
-	sf.val = val
+	sf.val.Set(val.Get())
 }
 
 // Reset -- сбрасывает строку.
@@ -68,6 +68,6 @@ func (sf *safeString) Getenv(env defs.ITxtFix) mL0.IResult[defs.ITxtFix] {
 		err := defs.Err("safeString.Getenv(): from env(%v), val is empty", env)
 		return mL0.NewErr[defs.ITxtFix](err)
 	}
-	sf.val = defs.Txt(txtVal)
+	sf.val = defs.TxtMut(txtVal)
 	return mL0.NewOk(defs.ITxtFix(sf.val))
 }

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

@@ -31,7 +31,7 @@ func (sf *tester) newFromEnv() {
 	sf.newFromEnvGood2()
 }
 
-var testBool = defs.Txt("TEST_BOOL")
+var testBool = defs.TxtFix("TEST_BOOL")
 
 func (sf *tester) newFromEnvGood2() {
 	sf.t.Log("newFromEnvGood2")
@@ -89,11 +89,11 @@ func (sf *tester) reset() {
 // Установка хранимого значения.
 func (sf *tester) set() {
 	sf.t.Log("set")
-	sf.ss.Set(defs.Txt("77"))
+	sf.ss.Set(defs.TxtMut("77"))
 	if sf.ss.Get().Get() != "77" {
 		sf.t.Fatalf("set(): ISafeString!='77'")
 	}
-	sf.ss.Set(defs.Txt("-56"))
+	sf.ss.Set(defs.TxtMut("-56"))
 	if sf.ss.Get().Get() != "-56" {
 		sf.t.Fatalf("set(): ISafeString!='-56'")
 	}

+ 5 - 4
v4/lev2/kchan/kchan.go

@@ -25,12 +25,13 @@ type KChanParam[T any] struct {
 	Ctx_     comp_spec.ILocalCtx // Локальный контекст для контроля создателя
 }
 
-var msg1 = defs.Txt("KChanParam[T]: ctx==nil")
+var msg1 = defs.TxtFix("KChanParam[T]: ctx==nil")
 
 // SelfCheck -- проверка корректности правильности параметров умного канала.
 func (sf *KChanParam[T]) SelfCheck() {
-	hassert(sf.Limit_ > 0, defs.Txt("KChanParam[T].SelfCheck(): limit=%v, канал должен иметь положительный лимит",
-		sf.Limit_))
+	hassert(sf.Limit_ > 0,
+		defs.TxtFix("KChanParam[T].SelfCheck(): limit=%v, канал должен иметь положительный лимит",
+			sf.Limit_))
 	hassert(sf.Ctx_ != nil, msg1)
 }
 
@@ -52,7 +53,7 @@ type KChan[T any] struct {
 	lstMsg   []T
 }
 
-var msg2 = defs.Txt("NewKChan: param==nil")
+var msg2 = defs.TxtFix("NewKChan: param==nil")
 
 // NewKChan -- создаёт новый безопасный умный канал.
 func NewKChan[T any](param *KChanParam[T]) core_spec.IChan[T] {

+ 2 - 2
v4/lev2/kctx/kctx.go

@@ -66,7 +66,7 @@ func (sf *kCtx) Wg() kspec.IKernelWg {
 // Done -- блокирующий вызов ожидания отмены контекста ядра.
 func (sf *kCtx) Done() {
 	<-sf.ctx.Done()
-	sf.log.Debug(defs.Txt("kCtx.Done()"))
+	sf.log.Debug(defs.TxtFix("kCtx.Done()"))
 }
 
 // CtxBg -- возвращает неотменяемый контекст ядра (лучше не использовать).
@@ -77,5 +77,5 @@ func (sf *kCtx) CtxBg() context.Context {
 // Cancel -- отменяет контекст ядра.
 func (sf *kCtx) Cancel() {
 	sf.fnCancel()
-	sf.log.Debug(defs.Txt("kCtx.Cancel()"))
+	sf.log.Debug(defs.TxtFix("kCtx.Cancel()"))
 }

+ 2 - 2
v4/lev2/kctx/kctx_test.go

@@ -17,7 +17,7 @@ func TestKernelCtx(t *testing.T) {
 	sf.new()
 }
 
-var counter = defs.Txt("counter")
+var counter = defs.TxtFix("counter")
 
 // Создание контекста ядра.
 func (sf *tester) new() {
@@ -37,7 +37,7 @@ func (sf *tester) new() {
 		sf.t.Fatalf("new(): counter==nil")
 	}
 	res := kCtx.Get(counter)
-	ctxVal := res.Hassert(defs.Txt("new()"))
+	ctxVal := res.Hassert("new()")
 	val := ctxVal.Val().(int)
 	if val != 5 {
 		sf.t.Fatalf("new(): counter(%v)!=5", val)

+ 8 - 8
v4/lev2/kernel_keeper/kernel_keeper.go

@@ -29,7 +29,7 @@ type kernelKeeper struct {
 var (
 	kernKeep *kernelKeeper
 	block    sync.Mutex
-	qName    = stream_name.NewAStreamName(defs.Txt("kernel_keeper"))
+	qName    = stream_name.NewAStreamName(defs.TxtFix("kernel_keeper"))
 )
 
 // GetKernelKeeper -- возвращает новый сторож системных сигналов.
@@ -38,7 +38,7 @@ func GetKernelKeeper(ctx context.Context, fnCancel func(),
 	block.Lock()
 	defer block.Unlock()
 	if kernKeep != nil {
-		kernKeep.log.Debug(defs.Txt("GetKernelKeeper()"))
+		kernKeep.log.Debug(defs.TxtFix("GetKernelKeeper()"))
 		return kernKeep
 	}
 	helpers.Hassert(ctx != nil, "NewKernelCtx(): ctx==nil", []any{})
@@ -47,7 +47,7 @@ func GetKernelKeeper(ctx context.Context, fnCancel func(),
 
 	paramLogBuf := &mL1.LogBufParam{
 		IsTerm_: safe_bool.NewSafeBool(true),
-		Prefix_: defs.Txt("kernelKeeper"),
+		Prefix_: defs.TxtFix("kernelKeeper"),
 	}
 
 	sf := &kernelKeeper{
@@ -57,7 +57,7 @@ func GetKernelKeeper(ctx context.Context, fnCancel func(),
 		log:      mL1.NewLogBuf(paramLogBuf),
 		chSys_:   make(chan os.Signal, 2),
 	}
-	sf.log.Debug(defs.Txt("GetKernelKeeper(): first run"))
+	sf.log.Debug(defs.TxtFix("GetKernelKeeper(): first run"))
 	sf.wg.Add(qName)
 
 	go sf.run(sf.chSys_)
@@ -73,7 +73,7 @@ func (sf *kernelKeeper) Log() comp_spec.ILogBuf {
 
 // Работает в отдельном потоке и ждёт сигналов прерываний работы.
 func (sf *kernelKeeper) run(chSys chan os.Signal) {
-	sf.log.Debug(defs.Txt("run()"))
+	sf.log.Debug(defs.TxtFix("run()"))
 
 	// Регистрируем сигналы SIGINT (Ctrl+C) и SIGTERM (завершение процесса)
 	// syscall.SIGHUP: Сигнал, отправляемый при закрытии терминала.
@@ -81,11 +81,11 @@ func (sf *kernelKeeper) run(chSys chan os.Signal) {
 	signal.Notify(chSys, syscall.SIGINT, syscall.SIGTERM, syscall.SIGHUP, syscall.SIGQUIT)
 	select {
 	case sig := <-chSys: // системный сигнал
-		sf.log.Debug(defs.Txt("run(): system signal, sig=%v\n"), sig)
+		sf.log.Debug(defs.TxtFix("run(): system signal, sig=%v\n"), sig)
 		sf.fnCancel()
 	case <-sf.ctx.Done(): // сигнал от приложения
-		sf.log.Debug(defs.Txt("run(): cancel app context, err=\n\t%v\n"), sf.ctx.Err())
+		sf.log.Debug(defs.TxtFix("run(): cancel app context, err=\n\t%v\n"), sf.ctx.Err())
 	}
 	sf.wg.Done(qName)
-	sf.log.Debug(defs.Txt("run(): end"))
+	sf.log.Debug(defs.TxtFix("run(): end"))
 }

+ 5 - 6
v4/lev2/kmodule/kmodule.go

@@ -87,10 +87,10 @@ func (sf *kModule) Live() defs.ITxtFix {
 }
 
 var (
-	f0 = defs.Txt("|")
-	f1 = defs.Txt("/")
-	f2 = defs.Txt("-")
-	f3 = defs.Txt("\\")
+	f0 = defs.TxtFix("|")
+	f1 = defs.TxtFix("/")
+	f2 = defs.TxtFix("-")
+	f3 = defs.TxtFix("\\")
 )
 
 // Сигнал жизни, каждые 5 сек публикует в шину метку.
@@ -121,8 +121,7 @@ func (sf *kModule) sigLive() {
 				res = sf.bus.Publish(topic, sf.strLive.Byte())
 				iPhase = -1
 			}
-			msg := defs.Txt("kModule.sigLive(): name=%v, in publish live", sf.Name())
-			res.Hassert(msg)
+			res.Hassert("kModule.sigLive(): name=%v, in publish live", sf.Name())
 			iPhase++
 			sf.stat.Add(1)
 		}

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

@@ -74,7 +74,7 @@ func (sf *ModStatDay) Svg() defs.ITxtFix {
 	sf.drawNet(valMin, valMax, cnv)
 	cnv.End()
 	strOut := sf.bufSvg.String()
-	return defs.Txt(strOut)
+	return defs.TxtFix(strOut)
 }
 
 func (sf *ModStatDay) drawNet(valMin, valMax defs.Int, cnv *svg.SVG) {

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

@@ -88,7 +88,7 @@ func (sf *ModStatMinutes) Svg() defs.ITxtFix {
 	sf.drawNet(valMin, valMax, cnv)
 	cnv.End()
 	strOut := sf.bufSvg.String()
-	return defs.Txt(strOut)
+	return defs.TxtFix(strOut)
 }
 
 func (sf *ModStatMinutes) drawNet(valMin, valMax int, cnv *svg.SVG) {

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

@@ -108,7 +108,7 @@ func (sf *ModStatSec) Svg() defs.ITimeFix {
 	cnv.End()
 	strOut := sf.bufSvg.String()
 	// strOut = strings.ReplaceAll(strOut, strCut, "")
-	return defs.Txt(strOut)
+	return defs.TxtFix(strOut)
 }
 
 func (sf *ModStatSec) drawNet(valMin, valMax defs.Int, cnv *svg.SVG) {

+ 10 - 11
v4/lev2/kmonolit/kmonolit.go

@@ -34,8 +34,7 @@ var (
 )
 
 var (
-	txtIsLocal = defs.Txt("isLocal")
-	msg1       = defs.Txt("GetMonolit(): in get from kernCtx isLocal -- not found")
+	txtIsLocal = defs.TxtFix("isLocal")
 )
 
 // GetMonolit -- возвращает монолит.
@@ -48,7 +47,7 @@ func GetMonolit(name mod_ent.AModuleName) *kMonolit {
 	mKh.Hassert(name != "", "NewMonolit(): name is empty")
 	kCtx := kctx.GetKernelCtx()
 	opt := kCtx.Get(txtIsLocal)
-	opt.Hassert(msg1)
+	opt.Hassert("GetMonolit(): in get from kernCtx isLocal -- not found")
 	isLocalCtx := opt.Some()
 	isLocal := isLocalCtx.Val().(bool)
 	lCtx := mL1.NewLocalCtx(kCtx.Ctx())
@@ -62,8 +61,8 @@ func GetMonolit(name mod_ent.AModuleName) *kMonolit {
 		isLocal: ebool.NewEBool(isLocal),
 	}
 	sf.log = sf.lCtx.Log()
-	sf.kCtx.Set(defs.Txt("monolitName"), name, defs.Txt("name of monolit"))
-	sf.kCtx.Set(defs.Txt("monolit"), sf, defs.Txt("monolit-app"))
+	sf.kCtx.Set(defs.TxtFix("monolitName"), name, defs.TxtFix("name of monolit"))
+	sf.kCtx.Set(defs.TxtFix("monolit"), sf, defs.TxtFix("monolit-app"))
 	mon = sf
 	_ = mod_spec.IKernelMonolit(sf)
 	return sf
@@ -92,14 +91,14 @@ func (sf *kMonolit) Add(module mod_spec.IKernelModule) {
 	_, isOk := sf.dict[module.Name().Get()]
 	mKh.Hassert(!isOk, "kMonolit.Add(): module(%v) already exists", []any{module.Name()})
 	sf.dict[module.Name().Get()] = module
-	sf.log.Debug(defs.Txt("kMonolit.Add(): module='%v'", module.Name()))
+	sf.log.Debug(defs.TxtFix("kMonolit.Add(): module='%v'", module.Name()))
 	if sf.isWork.Get() {
 		go module.Run()
-		sf.log.Debug(defs.Txt("kMonolit.Add(): module='%v' is run", module.Name()))
+		sf.log.Debug(defs.TxtFix("kMonolit.Add(): module='%v' is run", module.Name()))
 	}
-	key := defs.Txt("module_%v", len(sf.dict))
+	key := defs.TxtFix("module_%v", len(sf.dict))
 	moduleName := module.Name()
-	comment := defs.Txt("kMonolit.Add(): module=" + moduleName.Txt().Get())
+	comment := defs.TxtFix("kMonolit.Add(): module=" + moduleName.Txt().Get())
 	sf.lCtx.Set(key, module, comment)
 }
 
@@ -117,7 +116,7 @@ func (sf *kMonolit) Run() {
 	for _, module := range sf.dict {
 		go module.Run()
 	}
-	sf.log.Debug(defs.Txt("kMonolit.Run()"))
+	sf.log.Debug(defs.TxtFix("kMonolit.Run()"))
 }
 
 // IsLocal -- возвращает признак локальной шины.
@@ -139,5 +138,5 @@ func (sf *kMonolit) Wait() {
 	defer sf.kCtx.Unlock()
 	sf.isWork.Reset()
 	sf.isEnd.Set()
-	sf.log.Debug(defs.Txt("kMonolit.close(): end"))
+	sf.log.Debug(defs.TxtFix("kMonolit.close(): end"))
 }

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

@@ -100,7 +100,7 @@ func (sf *tester) new() {
 	sf.newGood1()
 }
 
-var txIsLocal = defs.Txt("isLocal")
+var txIsLocal = defs.TxtFix("isLocal")
 
 func (sf *tester) newGood1() {
 	sf.t.Log("newGood1")
@@ -110,7 +110,7 @@ func (sf *tester) newGood1() {
 		}
 	}()
 	kCtx := kctx.GetKernelCtx()
-	kCtx.Set(txIsLocal, true, defs.Txt("type bus"))
+	kCtx.Set(txIsLocal, true, defs.TxtFix("type bus"))
 	for {
 		time.Sleep(time.Millisecond * 1)
 		if kCtx.Get(txIsLocal) != nil {

+ 13 - 15
v4/lev2/kserv_http/kserv_http.go

@@ -29,7 +29,7 @@ import (
 )
 
 var (
-	msg0       = defs.Txt("kernel_server_http")
+	msg0       = defs.TxtFix("kernel_server_http")
 	streamName = stream_name.NewAStreamName(msg0) // Контрольная строка для ожидателя потока
 )
 
@@ -57,30 +57,28 @@ var (
 func getParams() (defs.ITxtFix, comp_spec.ILogBuf, kspec.IKernelCtx) {
 	param := &log_buf.LogBufParam{
 		IsTerm_: mL1.NewSafeBool(true),
-		Prefix_: defs.Txt("kServHttp"),
+		Prefix_: defs.TxtFix("kServHttp"),
 	}
 	log := mL1.NewLogBuf(param)
-	log.Debug(defs.Txt("GetKernelServHttp(): first run"))
+	log.Debug(defs.TxtFix("GetKernelServHttp(): first run"))
 	strLocalUrl := os.Getenv("LOCAL_HTTP_URL")
 	hassert(strLocalUrl != "", "getParams(): env LOCAL_HTTP_URL not set")
 	kCtx := kctx.GetKernelCtx()
-	return defs.Txt(strLocalUrl), log, kCtx
+	return defs.TxtFix(strLocalUrl), log, kCtx
 }
 
-var msg1 = defs.Txt("GetKernelServHttp(): not have monolit name from kCtx")
-
 // GetKernelServHttp -- возвращает  встроенный HTTP-сервер.
 func GetKernelServHttp() kspec.IKernelServerHttp {
 	block.Lock()
 	defer block.Unlock()
 	if kernServHttp != nil {
-		kernServHttp.log.Debug(defs.Txt("GetKernelServHttp()"))
+		kernServHttp.log.Debug(defs.TxtFix("GetKernelServHttp()"))
 		return kernServHttp
 	}
 	strLocalUrl, log, kCtx := getParams()
 
-	optMonolit := kCtx.Get(defs.Txt("monolitName"))
-	optMonolit.Hassert(msg1)
+	optMonolit := kCtx.Get(defs.TxtFix("monolitName"))
+	optMonolit.Hassert("GetKernelServHttp(): not have monolit name from kCtx")
 	strMonolit := optMonolit.Some().Val().(defs.ITimeFix)
 	confFiber := fiber.Config{
 		ServerHeader: strMonolit.String(),
@@ -113,9 +111,9 @@ func GetKernelServHttp() kspec.IKernelServerHttp {
 		Title: fmt.Sprintf("Страница метрик %q", strMonolit),
 	}))
 	sf.kCtx.Wg().Add(streamName)
-	kCtx.Set(defs.Txt("fiberApp"), sf.fiberApp, defs.Txt("GetKernelServHttp() internal fiber app"))
+	kCtx.Set(defs.TxtFix("fiberApp"), sf.fiberApp, defs.TxtFix("GetKernelServHttp() internal fiber app"))
 	kernServHttp = sf
-	kCtx.Set(defs.Txt("kServHttp"), kernServHttp, defs.Txt("kServHttp"))
+	kCtx.Set(defs.TxtFix("kServHttp"), kernServHttp, defs.TxtFix("kServHttp"))
 	return kernServHttp
 }
 
@@ -145,7 +143,7 @@ func (sf *kServHttp) Run() {
 	if sf.isWork.Get() {
 		return
 	}
-	sf.log.Debug(defs.Txt("Run(): url='%v'", sf.strUrl))
+	sf.log.Debug(defs.TxtFix("Run(): url='%v'", sf.strUrl))
 	lstPort := strings.Split(sf.strUrl.String(), ":")
 	strPort := lstPort[len(lstPort)-1]
 	strPort = strings.ReplaceAll(strPort, "/", "")
@@ -160,8 +158,8 @@ func (sf *kServHttp) Run() {
 	go sf.fnChErr(chErr)
 	fnCheckServer := func() error {
 		client := &http.Client{Timeout: 5 * time.Millisecond}
-		url := defs.Txt(sf.strUrl.Get() + "monitor")
-		sf.log.Debug(defs.Txt("url=%v", url))
+		url := defs.TxtFix(sf.strUrl.Get() + "monitor")
+		sf.log.Debug(defs.TxtFix("url=%v", url))
 		var (
 			resp *http.Response
 			err  error
@@ -205,5 +203,5 @@ func (sf *kServHttp) close() {
 	err := sf.fiberApp.Server().Shutdown()
 	assert(err == nil, "kServHttp.close(): in close server, err=\n\t%v", err)
 	sf.kCtx.Wg().Done(streamName)
-	sf.log.Debug(defs.Txt("close(): end"))
+	sf.log.Debug(defs.TxtFix("close(): end"))
 }

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

@@ -80,7 +80,7 @@ func (sf *tester) newGood1() {
 	sf.me = mock_env.MakeEnv()
 	_ = os.Unsetenv("LOCAL_HTTP_URL")
 	_ = os.Setenv("LOCAL_HTTP_URL", baseUrl)
-	sf.kCtx.Set(defs.Txt("monolitName"), "test_monolit", defs.Txt("comment"))
+	sf.kCtx.Set(defs.TxtFix("monolitName"), "test_monolit", defs.TxtFix("comment"))
 	serv := GetKernelServHttp().(*kServHttp)
 	if serv != kernServHttp {
 		sf.t.Fatalf("newGood1(): bad IKernelServHttp")

+ 7 - 7
v4/lev2/kserv_http_std/kserv_http_std.go

@@ -39,12 +39,12 @@ func GetKservHttpStd() mL0.IResult[*kServHttpStd] {
 	}
 	logBufParam := &log_buf.LogBufParam{
 		IsTerm_: safe_bool.NewSafeBool(true),
-		Prefix_: defs.Txt("kServHttpStd"),
+		Prefix_: defs.TxtFix("kServHttpStd"),
 	}
 	log := mL1.NewLogBuf(logBufParam)
-	log.Debug(defs.Txt("GetKservHttpStd()"))
-	resPort := mL1.NewSafeIntGetenv(defs.Txt("SERV_HTTP_STD_PORT"))
-	resPort.Hassert(defs.Txt("in get env SERV_HTTP_STD_PORT"))
+	log.Debug(defs.TxtFix("GetKservHttpStd()"))
+	resPort := mL1.NewSafeIntGetenv(defs.TxtFix("SERV_HTTP_STD_PORT"))
+	resPort.Hassert("in get env SERV_HTTP_STD_PORT")
 	sf := &kServHttpStd{
 		kCtx: kctx.GetKernelCtx(),
 		log:  log,
@@ -65,7 +65,7 @@ func (sf *kServHttpStd) Run() {
 	}
 	// Запуск сервера в горутине
 	go func() {
-		msg := defs.Txt("kServHttpStd.Run().fn(): run on http://%v", sf.server.Addr)
+		msg := defs.TxtFix("kServHttpStd.Run().fn(): run on http://%v", sf.server.Addr)
 		sf.log.Debug(msg)
 		if err := sf.server.ListenAndServe(); err != nil && err != http.ErrServerClosed {
 			err := defs.Err("kServHttpStd.Run.fn(): in work, err=\n\t%v", err)
@@ -74,11 +74,11 @@ func (sf *kServHttpStd) Run() {
 	}()
 	go sf.close()
 	if err := sf.server.Shutdown(sf.kCtx.Ctx()); err != nil {
-		msgErr := defs.Txt("kServHttpStd.Run(): ошибка при graceful shutdown, err=\n\t%v", err)
+		msgErr := defs.TxtFix("kServHttpStd.Run(): ошибка при graceful shutdown, err=\n\t%v", err)
 		sf.log.Debug(msgErr)
 	}
 
-	sf.log.Info(defs.Txt("Сервер остановлен"))
+	sf.log.Info(defs.TxtFix("Сервер остановлен"))
 }
 
 func (sf *kServHttpStd) close() {

+ 7 - 7
v4/lev2/kwg/kwg.go

@@ -39,13 +39,13 @@ func GetKernelWg(ctx context.Context) kspec.IKernelWg {
 	block.Lock()
 	defer block.Unlock()
 	if kernWg != nil {
-		kernWg.log.Debug(defs.Txt("GetKernelWg()"))
+		kernWg.log.Debug(defs.TxtFix("GetKernelWg()"))
 		return kernWg
 	}
 	mKh.Hassert(ctx != nil, "GetKernelWg(): ctx==nil")
 	paramLogBuf := &log_buf.LogBufParam{
 		IsTerm_: safe_bool.NewSafeBool(true),
-		Prefix_: defs.Txt("kernelWg"),
+		Prefix_: defs.TxtFix("kernelWg"),
 	}
 	sf := &kernelWg{
 		ctx:        ctx,
@@ -53,7 +53,7 @@ func GetKernelWg(ctx context.Context) kspec.IKernelWg {
 		isWork:     mL1.NewSafeBool(false),
 		log:        mL1.NewLogBuf(paramLogBuf),
 	}
-	sf.log.Debug(defs.Txt("GetKernelWg(): run"))
+	sf.log.Debug(defs.TxtFix("GetKernelWg(): run"))
 	go sf.close()
 	sf.isWork.Set()
 	kernWg = sf
@@ -94,7 +94,7 @@ func (sf *kernelWg) Done(name *stream_name.AStreamName) {
 	sf.Lock()
 	defer sf.Unlock()
 	delete(sf.dictStream, name)
-	msg := defs.Txt("Done(): stream(%v) done", name)
+	msg := defs.TxtFix("Done(): stream(%v) done", name)
 	sf.log.Debug(msg)
 }
 
@@ -106,14 +106,14 @@ func (sf *kernelWg) Wait() {
 			break
 		}
 	}
-	sf.log.Debug(defs.Txt("Wait(): done"))
+	sf.log.Debug(defs.TxtFix("Wait(): done"))
 }
 
 // Add -- добавляет поток в ожидание.
 func (sf *kernelWg) Add(name *stream_name.AStreamName) {
 	sf.Lock()
 	defer sf.Unlock()
-	msg := defs.Txt("Add(): stream('%v') done", name)
+	msg := defs.TxtFix("Add(): stream('%v') done", name)
 	sf.log.Debug(msg)
 	mKh.Hassert(sf.isWork.Get(), "Add(): stream=%v, work end", []any{name})
 	mKh.Hassert(name.Name().Get() != "", "Add(): name stream is empty")
@@ -142,5 +142,5 @@ func (sf *kernelWg) close() {
 		return
 	}
 	sf.isWork.Reset()
-	sf.log.Debug(defs.Txt("close(): end"))
+	sf.log.Debug(defs.TxtFix("close(): end"))
 }

+ 1 - 1
v4/lev2/kwg/kwg_test.go

@@ -34,7 +34,7 @@ func TestKernelWG(t *testing.T) {
 }
 
 var (
-	qName = stream_name.NewAStreamName(defs.Txt("test_stream"))
+	qName = stream_name.NewAStreamName(defs.TxtFix("test_stream"))
 )
 
 // Попытка добавления после закрытия ожидателя.

+ 1 - 2
v4/lev2/log_topic/log_topic_test.go

@@ -3,7 +3,6 @@ package log_topic
 import (
 	"testing"
 
-	"gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs"
 	"gitp78su.ipnodns.ru/svi/kern/v4/lev2/kctx"
 	"gitp78su.ipnodns.ru/svi/kern/v4/lev2/lti/bus_ent"
 	"gitp78su.ipnodns.ru/svi/kern/v4/lev2/lti/bus_ent/topic"
@@ -32,7 +31,7 @@ func (sf *tester) newGood1() {
 	sf.t.Log("newGood1")
 	busClient := client_bus_local.NewClientBusLocal()
 	qTopicTest := bus_ent.ITopicFix(topic.NewTopic("test_topic"))
-	client := NewLogTopic(qTopicTest, busClient).Hassert(defs.Txt("newGood1()"))
+	client := NewLogTopic(qTopicTest, busClient).Hassert("newGood1()")
 	res := client.Pub([]byte("test_msg"))
 	if res.IsErr() {
 		sf.t.Fatalf("newGood1(): err=%v", res.Err())

+ 10 - 10
v4/lev2/lsi/kstore_kv/kstore_kv.go

@@ -26,7 +26,7 @@ import (
 )
 
 var (
-	storeStreamName = stream_name.NewAStreamName(defs.Txt("kstore_kv")) // Имя потока для ожидателя потоков
+	storeStreamName = stream_name.NewAStreamName(defs.TxtFix("kstore_kv")) // Имя потока для ожидателя потоков
 )
 
 // kStoreKv -- локальное хранилище ядра.
@@ -51,12 +51,12 @@ func GetKernelStore() store_spec.IKernelStoreKv {
 	block.Lock()
 	defer block.Unlock()
 	if kernStore != nil {
-		kernStore.log.Debug(defs.Txt("GetKernelStore()"))
+		kernStore.log.Debug(defs.TxtFix("GetKernelStore()"))
 		return kernStore
 	}
 	kCtx := kctx.GetKernelCtx()
 	param := &log_buf.LogBufParam{
-		Prefix_: defs.Txt("kStoreKv"),
+		Prefix_: defs.TxtFix("kStoreKv"),
 		IsTerm_: safe_bool.NewSafeBool(true),
 	}
 	log := mL1.NewLogBuf(param)
@@ -69,7 +69,7 @@ func GetKernelStore() store_spec.IKernelStoreKv {
 	}
 	sf.open()
 	kernStore = sf
-	kCtx.Set(defs.Txt("kernStoreKV"), kernStore, "fast KV store on Badger")
+	kCtx.Set(defs.TxtFix("kernStoreKV"), kernStore, "fast KV store on Badger")
 	return kernStore
 }
 
@@ -83,7 +83,7 @@ func (sf *kStoreKv) Set(rec store_ent.IRecKvFix) mL0.IResult[core_spec.EBool] {
 	sf.Lock()
 	defer sf.Unlock()
 	key := rec.Key()
-	sf.log.Debug(defs.Txt("Set(): key='%v'", key.Get()))
+	sf.log.Debug(defs.TxtFix("Set(): key='%v'", key.Get()))
 	fnSet := func(txn *badger.Txn) error {
 		err := txn.Set(key.Byte(), rec.Val().Byte())
 		return err
@@ -101,7 +101,7 @@ func (sf *kStoreKv) Set(rec store_ent.IRecKvFix) mL0.IResult[core_spec.EBool] {
 func (sf *kStoreKv) Get(key store_ent.IStoreKeyFix) mL0.IResult[[]byte] {
 	sf.RLock()
 	defer sf.RUnlock()
-	sf.log.Debug(defs.Txt("Get(): key='%v'", key))
+	sf.log.Debug(defs.TxtFix("Get(): key='%v'", key))
 	var binVal []byte
 	fnGet := func(txn *badger.Txn) error {
 		item, err := txn.Get(key.Byte())
@@ -157,7 +157,7 @@ func (sf *kStoreKv) ByPrefix(prefix store_ent.IStoreKeyFix) core_spec.IResult[[]
 func (sf *kStoreKv) Delete(key store_ent.IStoreKeyFix) mL0.IResult[core_spec.EBool] {
 	sf.Lock()
 	defer sf.Unlock()
-	sf.log.Debug(defs.Txt("Delete(): key='%v'", key))
+	sf.log.Debug(defs.TxtFix("Delete(): key='%v'", key))
 	fnDelete := func(txn *badger.Txn) error {
 		err := txn.Delete(key.Byte())
 		return err
@@ -175,12 +175,12 @@ func (sf *kStoreKv) Delete(key store_ent.IStoreKeyFix) mL0.IResult[core_spec.EBo
 func (sf *kStoreKv) open() {
 	sf.Lock()
 	defer sf.Unlock()
-	sf.log.Debug(defs.Txt("open()"))
+	sf.log.Debug(defs.TxtFix("open()"))
 	strPath := os.Getenv("LOCAL_STORE_PATH")
 	mKh.Hassert(strPath != "", "open(): env LOCAL_STORE_PATH not set")
 	pwd, err := os.Getwd()
 	mKh.Hassert(err == nil, "open(): in get PWD, err=\n\t%v", err)
-	sf.storePath = defs.Txt(pwd + strPath + "/db_local")
+	sf.storePath = defs.TxtFix(pwd + strPath + "/db_local")
 	err = os.MkdirAll(sf.storePath.String(), 0750)
 	mKh.Hassert(err == nil, "open(): in make dir %v, err=\n\t%v", sf.storePath, err)
 	sf.db, err = badger.Open(badger.DefaultOptions(sf.storePath.String()))
@@ -238,5 +238,5 @@ func (sf *kStoreKv) close() {
 	err := sf.db.Close()
 	mKh.Assert(err == nil, "kStoreKv.close(): in close DB, err=\n\t%v", err)
 	sf.wg.Done(storeStreamName)
-	sf.log.Debug(defs.Txt("close(): done"))
+	sf.log.Debug(defs.TxtFix("close(): done"))
 }

+ 3 - 3
v4/lev2/lsi/kstore_kv/kstore_kv_test.go

@@ -93,7 +93,7 @@ func (sf *tester) byPrefix() {
 	}
 	key = rec_key.NewRecKey("test")
 	res := kernStore.ByPrefix(key)
-	res.Hassert(defs.Txt("byPrefix(): val == nil"))
+	res.Hassert("byPrefix(): val == nil")
 	lstKey := res.Ok()
 	if len(lstKey) != 2 {
 		sf.t.Fatalf("byPrefix(): len(%v)!=2", len(lstKey))
@@ -105,7 +105,7 @@ func (sf *tester) get() {
 	sf.t.Log("get")
 	key := rec_key.NewRecKey("test_key")
 	res := kernStore.Get(key)
-	res.Hassert(defs.Txt("get(): val==nil"))
+	res.Hassert("get(): val==nil")
 	strVal := string(res.Ok())
 	if strVal != "test_val" {
 		sf.t.Fatalf("get(): strVal(%v)!='test_val'", strVal)
@@ -125,7 +125,7 @@ func (sf *tester) set() {
 }
 
 var (
-	qName = stream_name.NewAStreamName(defs.Txt("123"))
+	qName = stream_name.NewAStreamName(defs.TxtFix("123"))
 )
 
 // Закрытие хранилища.

+ 1 - 1
v4/lev2/lsi/store_ent/rec_meta/rec_meta.go

@@ -49,7 +49,7 @@ func NewRecMeta(key rec_key.IRecKeyFix) *RecMeta {
 	sf := &RecMeta{
 		Key_:       key.Get(),
 		Vers_:      1,
-		Operation_: defs.Txt("create"),
+		Operation_: defs.TxtFix("create"),
 		createdAt_: etime.NewETimeAuto(),
 		updateAt_:  etime.NewETimeAutoMut(),
 	}

+ 1 - 1
v4/lev2/lti/bus_ent/handler_name/handler_name.go

@@ -28,7 +28,7 @@ type HandlerName struct {
 func NewHandlerName(val AHandlerName) *HandlerName {
 	helpers.Assert(val != "", "NewAHandlerName: val is empty")
 	sf := &HandlerName{
-		val: defs.Txt(val),
+		val: defs.TxtFix(val),
 	}
 	_ = IHandlerNameFix(sf)
 	return sf

+ 1 - 1
v4/lev2/lti/bus_ent/topic/topic.go

@@ -40,7 +40,7 @@ func NewTopic(val ATopic) *Topic {
 
 // String -- строковое представление топика.
 func (sf *Topic) String() string {
-	return defs.Txt(sf.val).String()
+	return defs.TxtFix(sf.val).String()
 }
 
 // Get -- получить строковое представление топика.

+ 1 - 1
v4/lev2/lti/bus_mock/mock_hand_sub_http/mock_hand_sub_http.go

@@ -69,5 +69,5 @@ func (sf *MockHandSubHttp) FnBack(binMsg []byte) {
 func (sf *MockHandSubHttp) Msg() defs.ITxtFix {
 	sf.block.Lock()
 	defer sf.block.Unlock()
-	return defs.Txt(string(sf.BinMsg_))
+	return defs.TxtFix(string(sf.BinMsg_))
 }

+ 3 - 3
v4/lev2/lti/bus_mock/mock_hand_sub_http/mock_hand_sub_http_test.go

@@ -46,7 +46,7 @@ func TestHandlerHttpSub(t *testing.T) {
 	}
 	fnClear()
 	defer fnClear()
-	sf.ctx.Set(defs.Txt("monolitName"), "test_monolit", "comment")
+	sf.ctx.Set(defs.TxtFix("monolitName"), "test_monolit", "comment")
 	sf.new()
 	sf.back()
 	sf.ctx.Cancel()
@@ -70,7 +70,7 @@ func (sf *tester) backBad2() {
 	sf.t.Log("backBad2")
 	kernServ := kserv_http.GetKernelServHttp()
 	fiberApp := kernServ.Fiber()
-	sf.hand.WebHook_ = defs.Txt(baseUrl + "test/local")
+	sf.hand.WebHook_ = defs.TxtFix(baseUrl + "test/local")
 	fiberApp.Post("/test/local", sf.testLocal)
 	kernServ.Run()
 	sf.isBad = true
@@ -109,7 +109,7 @@ func (sf *tester) newGood1() {
 			sf.t.Fatalf("newGood1(): panic=%v", _panic)
 		}
 	}()
-	sf.hand = NewMockHandSubHttp(qTopicTest, defs.Txt("/test/local")).(*MockHandSubHttp)
+	sf.hand = NewMockHandSubHttp(qTopicTest, defs.TxtFix("/test/local")).(*MockHandSubHttp)
 	if sf.hand == nil {
 		sf.t.Fatalf("newGood1(): handler==nil")
 	}

+ 1 - 1
v4/lev2/lti/bus_mock/mock_hand_sub_local/mock_hand_sub.go

@@ -35,7 +35,7 @@ func NewMockHandlerSub(topic bus_ent.ITopicFix, localHook defs.ITxtFix) *MockHan
 func (sf *MockHandlerSub) Msg() defs.ITxtFix {
 	sf.block.RLock()
 	defer sf.block.RUnlock()
-	return defs.Txt(string(sf.Msg_))
+	return defs.TxtFix(string(sf.Msg_))
 }
 
 // Функция обратного вызова подписки.

+ 1 - 1
v4/lev2/lti/bus_mock/mock_hand_sub_local/mock_hand_sub_test.go

@@ -48,7 +48,7 @@ var (
 
 func (sf *tester) newGood1() {
 	sf.t.Log("newGood1")
-	sf.hand = NewMockHandlerSub(qTopicTest, defs.Txt("test_name"))
+	sf.hand = NewMockHandlerSub(qTopicTest, defs.TxtFix("test_name"))
 	if sf.hand == nil {
 		sf.t.Fatalf("newGood1(): handler==nil")
 	}

+ 3 - 3
v4/lev2/lti/kbus/dict_sub_hook/dict_sub_hook.go

@@ -39,7 +39,7 @@ func (sf *dictSubHook) Unsubscribe(handler bus_spec.IBusHandlerSubscribe) {
 	}
 	handlerName := handler.Name()
 	delete(sf.dict, handlerName.Get())
-	sf.kCtx.Del(defs.Txt(handler.Name().Get()))
+	sf.kCtx.Del(defs.TxtFix(handler.Name().Get()))
 }
 
 // Subscribe -- добавляет в словарь подписки новый обработчик.
@@ -57,9 +57,9 @@ func (sf *dictSubHook) Read(binMsg []byte) {
 	sf.block.RLock()
 	defer sf.block.RUnlock()
 	for handlerName := range sf.dict {
-		optHand := sf.kCtx.Get(defs.Txt(handlerName))
+		optHand := sf.kCtx.Get(defs.TxtFix(handlerName))
 		if optHand.IsNone() {
-			sf.kCtx.Del(defs.Txt(handlerName))
+			sf.kCtx.Del(defs.TxtFix(handlerName))
 			continue
 		}
 		handler := optHand.Some().Val().(bus_spec.IBusHandlerSubscribe)

+ 2 - 2
v4/lev2/lti/kbus/dict_sub_hook/dict_sub_hook_test.go

@@ -24,8 +24,8 @@ var (
 func TestDictSubWebHook(t *testing.T) {
 	sf := &tester{
 		t:        t,
-		handSub:  mock_hand_sub_local.NewMockHandlerSub(qTopicHand1, defs.Txt("hand_name1")),
-		handSub2: mock_hand_sub_local.NewMockHandlerSub(qTopicHand2, defs.Txt("hand_name2")),
+		handSub:  mock_hand_sub_local.NewMockHandlerSub(qTopicHand1, defs.TxtFix("hand_name1")),
+		handSub2: mock_hand_sub_local.NewMockHandlerSub(qTopicHand2, defs.TxtFix("hand_name2")),
 	}
 	sf.new()
 	sf.add()

+ 2 - 3
v4/lev2/lti/kbus/dict_topic_serve/dict_topic_serve_test.go

@@ -3,7 +3,6 @@ package dict_topic_serve
 import (
 	"testing"
 
-	"gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs"
 	"gitp78su.ipnodns.ru/svi/kern/v4/lev2/kctx"
 	"gitp78su.ipnodns.ru/svi/kern/v4/lev2/lti/bus_ent"
 	"gitp78su.ipnodns.ru/svi/kern/v4/lev2/lti/bus_ent/topic"
@@ -43,7 +42,7 @@ func (sf *tester) callBad3() {
 	ctx := kctx.GetKernelCtx()
 	ctx.Cancel()
 	ctx.Wg().Wait()
-	sf.dict.Register(sf.hand).Hassert(defs.Txt("callBad3()"))
+	sf.dict.Register(sf.hand).Hassert("callBad3()")
 	res := sf.dict.SendRequest(sf.hand.Topic(), []byte("test"))
 	if res.IsOk() {
 		sf.t.Fatalf("callBad3(): err==nil")
@@ -102,7 +101,7 @@ func (sf *tester) addBad2() {
 // Правильное добавление обработчика подписки.
 func (sf *tester) addGood1() {
 	sf.t.Log("addGood1()")
-	sf.dict.Register(sf.hand).Hassert(defs.Txt("addGood1()"))
+	sf.dict.Register(sf.hand).Hassert("addGood1()")
 }
 
 // Вместо обработчика пустышка.

+ 2 - 2
v4/lev2/lti/kbus/dict_topic_sub/dict_topic_sub_test.go

@@ -27,7 +27,7 @@ var (
 func TestDictSub(t *testing.T) {
 	sf := &tester{
 		t:    t,
-		hand: mock_hand_sub_local.NewMockHandlerSub(qTopicDictSub, defs.Txt("name_dict_sub")),
+		hand: mock_hand_sub_local.NewMockHandlerSub(qTopicDictSub, defs.TxtFix("name_dict_sub")),
 	}
 	sf.new()
 	sf.addBad1()
@@ -46,7 +46,7 @@ func (sf *tester) unsub1() {
 	sf.t.Log("unsub1")
 	sf.dict.Unsubscribe(sf.hand)
 	sf.dict.Read(qTopicTest, []byte("test test"))
-	hand := mock_hand_sub_local.NewMockHandlerSub(qTopicDictSub1, defs.Txt("name_dict_sub"))
+	hand := mock_hand_sub_local.NewMockHandlerSub(qTopicDictSub1, defs.TxtFix("name_dict_sub"))
 	sf.dict.Unsubscribe(hand)
 	count := 0
 	for count < 100 {

+ 14 - 14
v4/lev2/lti/kbus_http/kbus_http.go

@@ -110,13 +110,13 @@ func (sf *kBusHttp) processSubscribe(req *dot.SubscribeReq) *dot.SubscribeResp {
 
 // Входящая публикация.
 func (sf *kBusHttp) postPublish(ctx fiber.Ctx) error {
-	sf.log.Debug(defs.Txt("postPublish()"))
+	sf.log.Debug(defs.TxtFix("postPublish()"))
 	sf.postCommon(ctx)
 	req := &dot.PublishReq{}
 	err := ctx.Bind().Body(req)
 	if err != nil {
 		resp := &dot.PublishResp{
-			Status_: defs.Txt("kernelBusHttp.postPublish(): in parse request, err=\n\t%v\n", err),
+			Status_: defs.TxtFix("kernelBusHttp.postPublish(): in parse request, err=\n\t%v\n", err),
 			Uuid_:   req.Uuid_,
 		}
 		resp.SelfCheck()
@@ -132,13 +132,13 @@ func (sf *kBusHttp) postPublish(ctx fiber.Ctx) error {
 
 // Входящая отписка от топика по HTTP.
 func (sf *kBusHttp) postUnsub(ctx fiber.Ctx) error {
-	sf.log.Debug(defs.Txt("postUnsub()"))
+	sf.log.Debug(defs.TxtFix("postUnsub()"))
 	sf.postCommon(ctx)
 	req := &dot.UnsubReq{}
 	err := ctx.Bind().Body(req)
 	if err != nil {
 		resp := &dot.ServeResp{
-			Status_: defs.Txt("kernelBusHttp.postSendRequest(): err=\n\t%v", err),
+			Status_: defs.TxtFix("kernelBusHttp.postSendRequest(): err=\n\t%v", err),
 			Uuid_:   req.Uuid_,
 		}
 		resp.SelfCheck()
@@ -165,11 +165,11 @@ func (sf *kBusHttp) processPublish(req *dot.PublishReq) *dot.PublishResp {
 	topic := bus_ent.ITopicFix(topic.NewTopic(req.Topic_))
 	res := sf.Publish(topic, req.BinMsg_)
 	resp := &dot.PublishResp{
-		Status_: defs.Txt("ok"),
+		Status_: defs.TxtFix("ok"),
 		Uuid_:   req.Uuid_,
 	}
 	if res.IsErr() {
-		resp.Status_ = defs.Txt("kernelBusHttp.processPublish(): err=\n\t%v", res.Err())
+		resp.Status_ = defs.TxtFix("kernelBusHttp.processPublish(): err=\n\t%v", res.Err())
 		return resp
 	}
 	return resp
@@ -177,7 +177,7 @@ func (sf *kBusHttp) processPublish(req *dot.PublishReq) *dot.PublishResp {
 
 // Входящий запрос.
 func (sf *kBusHttp) postSendRequest(ctx fiber.Ctx) error {
-	sf.log.Debug(defs.Txt("postSendRequest()"))
+	sf.log.Debug(defs.TxtFix("postSendRequest()"))
 	ctx.Set("Content-type", "text/html; charset=utf8")
 	ctx.Set("Content-type", "text/json")
 	ctx.Set("Cache-Control", "no-cache")
@@ -185,7 +185,7 @@ func (sf *kBusHttp) postSendRequest(ctx fiber.Ctx) error {
 	err := ctx.Bind().Body(req)
 	if err != nil {
 		resp := &dot.ServeResp{
-			Status_: defs.Txt("kernelBusHttp.postSendRequest(): err=\n\t%v", err),
+			Status_: defs.TxtFix("kernelBusHttp.postSendRequest(): err=\n\t%v", err),
 			Uuid_:   req.Uuid_,
 		}
 		resp.SelfCheck()
@@ -205,11 +205,11 @@ func (sf *kBusHttp) processSendRequest(req *dot.ServeReq) *dot.ServeResp {
 	topic := bus_ent.ITopicFix(topic.NewTopic(req.Topic_))
 	res := sf.SendRequest(topic, req.BinReq_)
 	resp := &dot.ServeResp{
-		Status_: defs.Txt("ok"),
+		Status_: defs.TxtFix("ok"),
 		Uuid_:   req.Uuid_,
 	}
 	if res.IsErr() {
-		resp.Status_ = defs.Txt("kernelBusHttp.processSendRequest(): err=\n\t%v", res.Err())
+		resp.Status_ = defs.TxtFix("kernelBusHttp.processSendRequest(): err=\n\t%v", res.Err())
 		return resp
 	}
 	resp.BinResp_ = res.Ok()
@@ -220,17 +220,17 @@ func (sf *kBusHttp) processSendRequest(req *dot.ServeReq) *dot.ServeResp {
 func (sf *kBusHttp) processUnsubRequest(req *dot.UnsubReq) *dot.UnsubResp {
 	req.SelfCheck()
 	resp := &dot.UnsubResp{
-		Status_: defs.Txt("ok"),
+		Status_: defs.TxtFix("ok"),
 		Uuid_:   req.Uuid_,
 	}
-	optHandler := sf.KCtx_.Get(defs.Txt(req.HandlerName_))
+	optHandler := sf.KCtx_.Get(defs.TxtFix(req.HandlerName_))
 	if optHandler.IsNone() {
-		resp.Status_ = defs.Txt("kernelBusHttp.processUnsubRequest(): not get handler(%v) from kernel ctx",
+		resp.Status_ = defs.TxtFix("kernelBusHttp.processUnsubRequest(): not get handler(%v) from kernel ctx",
 			req.HandlerName_)
 		return resp
 	}
 	if optHandler == nil {
-		resp.Status_ = defs.Txt("kernelBusHttp.processUnsubRequest(): handler(%v) not exists", req.HandlerName_)
+		resp.Status_ = defs.TxtFix("kernelBusHttp.processUnsubRequest(): handler(%v) not exists", req.HandlerName_)
 		return resp
 	}
 	hand := optHandler.Some().Val().(bus_spec.IBusHandlerSubscribe)

+ 17 - 17
v4/lev2/lti/kbus_http/kbus_http_test.go

@@ -43,7 +43,7 @@ func TestKernelBusHttp(t *testing.T) {
 		handServ: mock_hand_serve.NewMockHandlerServe(qNameServ, "name_serv"),
 	}
 	ctx := kctx.GetKernelCtx()
-	ctx.Set(defs.Txt("monolitName"), "test_monolit", "comment")
+	ctx.Set(defs.TxtFix("monolitName"), "test_monolit", "comment")
 	sf.get()
 	sf.req()
 	sf.sub()
@@ -69,7 +69,7 @@ func (sf *tester) unsubGood2() {
 	}
 	req := &dot.UnsubReq{
 		HandlerName_: sf.handSub.Name().Get(),
-		Uuid_:        defs.Txt(test_uuid),
+		Uuid_:        defs.TxtFix(test_uuid),
 	}
 	binReq, _ := json.MarshalIndent(req, "", "  ")
 	body := strings.NewReader(string(binReq))
@@ -140,7 +140,7 @@ func (sf *tester) unsubGood1() {
 	}
 	req := &dot.UnsubReq{
 		HandlerName_: sf.handSub.Name().Get(),
-		Uuid_:        defs.Txt(test_uuid),
+		Uuid_:        defs.TxtFix(test_uuid),
 	}
 	resp := Bus_.processUnsubRequest(req)
 	if resp.Status_.Get() != "ok" {
@@ -159,7 +159,7 @@ func (sf *tester) unsubBad2() {
 	}
 	req := &dot.UnsubReq{
 		HandlerName_: sf.handSub.Name().Get(),
-		Uuid_:        defs.Txt(test_uuid),
+		Uuid_:        defs.TxtFix(test_uuid),
 	}
 	resp := Bus_.processUnsubRequest(req)
 	if resp.Status_.Get() == "ok" {
@@ -193,7 +193,7 @@ func (sf *tester) pubGood2() {
 	sf.t.Log("pubGood2")
 	req := &dot.PublishReq{
 		Topic_:  qNameSub.Get(),
-		Uuid_:   defs.Txt(test_uuid),
+		Uuid_:   defs.TxtFix(test_uuid),
 		BinMsg_: []byte("http_pub"),
 	}
 	binReq, _ := json.MarshalIndent(req, "", "  ")
@@ -259,7 +259,7 @@ func (sf *tester) pubBad2() {
 
 	req := &dot.PublishReq{
 		Topic_:  qNameSub.Get(),
-		Uuid_:   defs.Txt(test_uuid),
+		Uuid_:   defs.TxtFix(test_uuid),
 		BinMsg_: []byte("test_pub"),
 	}
 	resp := Bus_.processPublish(req)
@@ -277,7 +277,7 @@ func (sf *tester) pubGood1() {
 	}
 	req := &dot.PublishReq{
 		Topic_:  qNameSub.Get(),
-		Uuid_:   defs.Txt(test_uuid),
+		Uuid_:   defs.TxtFix(test_uuid),
 		BinMsg_: []byte("test_pub"),
 	}
 	_ = Bus_.processPublish(req)
@@ -321,8 +321,8 @@ func (sf *tester) subGood2() {
 	sf.t.Log("subGood2")
 	req := &dot.SubscribeReq{
 		Topic_:   qNameServ.Get(),
-		Uuid_:    defs.Txt(test_uuid),
-		WebHook_: defs.Txt("http://localhost:18200/bus/pub/"),
+		Uuid_:    defs.TxtFix(test_uuid),
+		WebHook_: defs.TxtFix("http://localhost:18200/bus/pub/"),
 	}
 	binReq, _ := json.MarshalIndent(req, "", "  ")
 	body := strings.NewReader(string(binReq))
@@ -359,8 +359,8 @@ func (sf *tester) subBad3() {
 	sf.t.Log("subBad3")
 	req := &dot.SubscribeReq{
 		Topic_:   qNameServ.Get(),
-		Uuid_:    defs.Txt(test_uuid),
-		WebHook_: defs.Txt("http://localhost:18200/bus/pub/"),
+		Uuid_:    defs.TxtFix(test_uuid),
+		WebHook_: defs.TxtFix("http://localhost:18200/bus/pub/"),
 	}
 	defer func() {
 		if _panic := recover(); _panic != nil {
@@ -381,8 +381,8 @@ func (sf *tester) subGood1() {
 	sf.t.Log("subGood1")
 	req := &dot.SubscribeReq{
 		Topic_:   qNameServ.Get(),
-		Uuid_:    defs.Txt(test_uuid),
-		WebHook_: defs.Txt("http://localhost:18200/bus/"),
+		Uuid_:    defs.TxtFix(test_uuid),
+		WebHook_: defs.TxtFix("http://localhost:18200/bus/"),
 	}
 	defer func() {
 		if _panic := recover(); _panic != nil {
@@ -452,7 +452,7 @@ func (sf *tester) reqBad4() {
 	defer sf.handServ.IsBad_.Reset()
 	req := &dot.ServeReq{
 		Topic_:  sf.handServ.Topic().Get(),
-		Uuid_:   defs.Txt(test_uuid),
+		Uuid_:   defs.TxtFix(test_uuid),
 		BinReq_: []byte("test_msg"),
 	}
 	binReq, _ := json.MarshalIndent(req, "", "  ")
@@ -489,7 +489,7 @@ func (sf *tester) reqGood1() {
 	sf.t.Log("reqGood1")
 	req := &dot.ServeReq{
 		Topic_:  sf.handServ.Topic().Get(),
-		Uuid_:   defs.Txt(test_uuid),
+		Uuid_:   defs.TxtFix(test_uuid),
 		BinReq_: []byte("test_msg"),
 	}
 	binReq, _ := json.MarshalIndent(req, "", "  ")
@@ -531,7 +531,7 @@ func (sf *tester) reqBad3() {
 	sf.t.Log("reqBad3")
 	req := &dot.ServeReq{
 		Topic_:  qNameBad.Get(),
-		Uuid_:   defs.Txt(test_uuid),
+		Uuid_:   defs.TxtFix(test_uuid),
 		BinReq_: []byte("test_msg"),
 	}
 	binReq, _ := json.MarshalIndent(req, "", "  ")
@@ -598,5 +598,5 @@ func (sf *tester) get() {
 		sf.t.Fatalf("get(): bus==nil")
 	}
 	_ = GetKernelBusHttp()
-	Bus_.RegisterServe(sf.handServ).Hassert(defs.Txt("get()"))
+	Bus_.RegisterServe(sf.handServ).Hassert("get()")
 }

+ 1 - 1
v4/lev2/lti/kbus_local/kbus_local_test.go

@@ -23,7 +23,7 @@ func TestKernelBusLocal(t *testing.T) {
 	qTopicServ := bus_ent.ITopicFix(topic.NewTopic("topic_hand_serv"))
 	sf := &tester{
 		t:        t,
-		handSub:  mock_hand_sub_local.NewMockHandlerSub(qTopicSub, defs.Txt("mock_hand_sub")),
+		handSub:  mock_hand_sub_local.NewMockHandlerSub(qTopicSub, defs.TxtFix("mock_hand_sub")),
 		handServ: mock_hand_serve.NewMockHandlerServe(qTopicServ, "mock_hand_serv"),
 	}
 	sf.new()

+ 1 - 1
v4/lev2/wui/hx_url/hx_url_test.go

@@ -7,7 +7,7 @@ import (
 )
 
 func TestHxUrl(t *testing.T) {
-	swap := NewHxUrl(defs.Txt("/wui/click/abc"))
+	swap := NewHxUrl(defs.TxtFix("/wui/click/abc"))
 	if swap == nil {
 		t.Fatalf("swap==nil")
 	}

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

@@ -17,7 +17,7 @@ type HxSwap struct {
 // NewHxUrlMethod -- возвращает новый метод запроса.
 func NewHxUrlMethod() *HxSwap {
 	sf := &HxSwap{
-		method: defs.Txt("hx-post"),
+		method: defs.TxtFix("hx-post"),
 	}
 	_ = mWt.IHxUrlMethod(sf)
 	return sf

+ 1 - 1
v4/lev2/wui/hx_url_method/hx_url_method_test.go

@@ -14,7 +14,7 @@ func TestHxUrlMethod(t *testing.T) {
 	if method := swap.Method(); method.Get() != "hx-post" {
 		t.Fatalf("tag not empty")
 	}
-	swap.Set(defs.Txt("hx-get"))
+	swap.Set(defs.TxtFix("hx-get"))
 	if method := swap.Method(); method.Get() != "hx-get" {
 		t.Fatalf("tag bad")
 	}

+ 2 - 2
v4/lev2/wui/hx_url_patch/hx_url_patch_test.go

@@ -7,14 +7,14 @@ import (
 )
 
 func TestHxUrlPatch(t *testing.T) {
-	swap := NewHxUrlPatch(defs.Txt("/wui/form/123"))
+	swap := NewHxUrlPatch(defs.TxtFix("/wui/form/123"))
 	if swap == nil {
 		t.Fatalf("swap==nil")
 	}
 	if patch := swap.Patch(); patch.Get() != "/wui/form/123" {
 		t.Fatalf("patch bad")
 	}
-	swap.Set(defs.Txt("/wui/click/abc"))
+	swap.Set(defs.TxtFix("/wui/click/abc"))
 	if patch := swap.Patch(); patch.Get() != "/wui/click/abc" {
 		t.Fatalf("patch bad")
 	}

+ 2 - 2
v4/lev2/wui/wui_button/wui_button.go

@@ -33,7 +33,7 @@ func NewWuiButton(text defs.ITxtFix, fnBack FnBtnBack) *WuiButton {
 		text:       wui_text.NewWuiText(text),
 		fnBack:     fnBack,
 	}
-	sf.hx = wui_hx.NewWuiHx(defs.Txt("/wui/click/" + sf.Id().Get()))
+	sf.hx = wui_hx.NewWuiHx(defs.TxtFix("/wui/click/" + sf.Id().Get()))
 	wCtx := wui_ctx.GetWuiCtx()
 	wCtx.Set(sf.Id(), sf, "WUI-кнопка")
 	_ = mWt.IWuiButton(sf)
@@ -64,5 +64,5 @@ func (sf *WuiButton) Html() defs.ITxtFix {
 	strRes := strings.ReplaceAll(strBeg, "{.id}", sf.Id().String())
 	strRes = strings.ReplaceAll(strRes, "{.txt}", sf.text.String())
 	strRes = strings.ReplaceAll(strRes, "{.hx}", sf.hx.String())
-	return defs.Txt(strRes)
+	return defs.TxtFix(strRes)
 }

+ 2 - 2
v4/lev2/wui/wui_button/wui_button_test.go

@@ -23,7 +23,7 @@ func TestWuiButton(t *testing.T) {
 // Создание кнопки.
 func (sf *tester) new() {
 	sf.t.Log("new")
-	btn := NewWuiButton(defs.Txt("test_val"), sf.fnBack)
+	btn := NewWuiButton(defs.TxtFix("test_val"), sf.fnBack)
 	if btn == nil {
 		sf.t.Fatalf("new(): WuiButton==nil")
 	}
@@ -36,7 +36,7 @@ func (sf *tester) new() {
 	if hx := btn.Hx(); hx == nil {
 		sf.t.Fatalf("new(): IWuiHx==nil")
 	}
-	btn.Click(map[string]string{}).Hassert(defs.Txt("new()"))
+	btn.Click(map[string]string{}).Hassert("new()")
 	if str := <-sf.chCall; str != "test" {
 		sf.t.Fatalf("new(): bad called")
 	}

+ 2 - 2
v4/lev2/wui/wui_hx/wui_hx_test.go

@@ -22,7 +22,7 @@ func TestWhx(t *testing.T) {
 // Получает строку атрибутов.
 func (sf *tester) str() {
 	sf.t.Log("str")
-	sf.hx.Url().Method().Set(defs.Txt("hx-put"))
+	sf.hx.Url().Method().Set(defs.TxtFix("hx-put"))
 	sf.hx.Trigger().Trigger().Set("load")
 	sf.hx.Target().Set("#main")
 	sf.hx.Swap().Swap().Set("before")
@@ -43,7 +43,7 @@ func (sf *tester) str() {
 // Создаёт новые тэги HTMX.
 func (sf *tester) new() {
 	sf.t.Log("new")
-	hx := NewWuiHx(defs.Txt("/wui/click/123"))
+	hx := NewWuiHx(defs.TxtFix("/wui/click/123"))
 	if hx == nil {
 		sf.t.Fatalf("new(): IWuiHx==nil")
 	}

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

@@ -43,5 +43,5 @@ const (
 func (sf *WuiLabel) Html() defs.ITxtFix {
 	strRes := strings.ReplaceAll(strBeg, "{.id}", sf.Id().String())
 	strRes = strings.ReplaceAll(strRes, "{.txt}", sf.text.String())
-	return defs.Txt(strRes)
+	return defs.TxtFix(strRes)
 }

+ 1 - 2
v4/lev2/wui/wui_label/wui_label_test.go

@@ -20,8 +20,7 @@ func TestWuiLabel(t *testing.T) {
 // Создаёт новую метку.
 func (sf *tester) new() {
 	sf.t.Log("new")
-	lbl := NewWuiLabel(defs.Txt("test_lbl")).
-		Hassert(defs.Txt("new()"))
+	lbl := NewWuiLabel(defs.TxtFix("test_lbl")).Hassert("new()")
 	if txt := lbl.Text(); txt == nil {
 		sf.t.Fatalf("new(): txt==nil")
 	}

+ 2 - 2
v4/lev2/wui/wui_test.go

@@ -25,7 +25,7 @@ func (sf *tester) get() {
 	if wCtx == nil {
 		sf.t.Fatalf("get(): IWuiCtx==nil")
 	}
-	wBtn := NewWuiButton(defs.Txt("test_btn"), sf.fnClick)
+	wBtn := NewWuiButton(defs.TxtFix("test_btn"), sf.fnClick)
 	if wBtn == nil {
 		sf.t.Fatalf("get(): IWuiButton==nil")
 	}
@@ -34,5 +34,5 @@ func (sf *tester) get() {
 // Функция обратного вызова.
 func (sf *tester) fnClick(dict map[string]string) mL0.IResult[defs.ITxtFix] {
 	sf.t.Log("fnClick")
-	return mL0.NewOk(defs.ITxtFix(defs.Txt("test_click")))
+	return mL0.NewOk(defs.TxtFix("test_click"))
 }

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

@@ -37,7 +37,7 @@ func (sf *WuiText) Html() defs.ITxtFix {
 	defer sf.RUnlock()
 	strRes := strings.ReplaceAll(strBeg, "{.id}", sf.Id().String())
 	strRes = strings.ReplaceAll(strRes, "{.txt}", sf.val.String())
-	return defs.Txt(strRes)
+	return defs.TxtFix(strRes)
 }
 
 // Set -- устанавливает хранимое значение.

+ 2 - 2
v4/lev2/wui/wui_text/wui_text_test.go

@@ -31,7 +31,7 @@ func (sf *tester) html() {
 // Устанавливает новый текст.
 func (sf *tester) set() {
 	sf.t.Log("set")
-	sf.txt.Set(defs.Txt("test_val2"))
+	sf.txt.Set(defs.TxtFix("test_val2"))
 	if txt := sf.txt.Get(); txt != "test_val2" {
 		sf.t.Fatalf("set(): text is bad")
 	}
@@ -40,7 +40,7 @@ func (sf *tester) set() {
 // Получение нового WuiText.
 func (sf *tester) new() {
 	sf.t.Log("new")
-	sf.txt = NewWuiText(defs.Txt("test_text"))
+	sf.txt = NewWuiText(defs.TxtFix("test_text"))
 	if txt := sf.txt.Get(); txt != "test_text" {
 		sf.t.Fatalf("new(): text is bad")
 	}

+ 2 - 2
v4/lev2/wui/wui_widget/wui_widget.go

@@ -17,7 +17,7 @@ type WuiWidget struct {
 // NewWuiWidget -- возвращает новый базовый виджет WUI.
 func NewWuiWidget() *WuiWidget {
 	sf := &WuiWidget{
-		ITxtFix: defs.Txt("wui_" + rand.Text()),
+		ITxtFix: defs.TxtFix("wui_" + rand.Text()),
 	}
 	_ = mWt.IWuiWidget(sf)
 	return sf
@@ -35,5 +35,5 @@ const (
 // Html -- возвращает HTML представление виджета.
 func (sf *WuiWidget) Html() defs.ITxtFix {
 	strRes := strings.ReplaceAll(strBeg, "{.id}", sf.String())
-	return defs.Txt(strRes)
+	return defs.TxtFix(strRes)
 }

+ 2 - 1
v4/lev3/mod_ent/mod_ent.go

@@ -3,6 +3,7 @@ package mod_ent
 
 import (
 	"gitp78su.ipnodns.ru/svi/kern/v4/lev0/core_spec"
+	"gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs"
 	"gitp78su.ipnodns.ru/svi/kern/v4/lev3/mod_ent/mod_num"
 	"gitp78su.ipnodns.ru/svi/kern/v4/lev3/mod_ent/module_name"
 )
@@ -27,7 +28,7 @@ func NewModuleNumFix() mod_num.IModNumFix {
 // ModuleNumFromStr -- возвращает номер модуля из строки
 //
 
-func ModuleNumFromStr(str string) core_spec.IResult[mod_num.IModNumFix] {
+func ModuleNumFromStr(str defs.ITxtFix) core_spec.IResult[mod_num.IModNumFix] {
 	return mod_num.FromStr(str)
 }
 

+ 4 - 5
v4/lev3/mod_ent/mod_num/mod_num.go

@@ -3,7 +3,6 @@ package mod_num
 
 import (
 	"fmt"
-	"strconv"
 	"sync"
 
 	"gitp78su.ipnodns.ru/svi/kern/v4/lev0"
@@ -44,13 +43,13 @@ func NewModuleNumFix() IModNumFix {
 
 // FromStr -- возвращает новый номер модуля из строки.
 func FromStr(txtNumMod defs.ITxtFix) core_spec.IResult[IModNumFix] {
-	iNum, err := txtNumMod.Atoi()
-	if err != nil {
-		err := defs.Err("FromStr(): strNumMod(%q) not nu,ber, err=\n\t%w", txtNumMod, err)
+	resNum := txtNumMod.Atoi()
+	if resNum.IsErr() {
+		err := defs.Err("FromStr(): strNumMod(%q) not nu,ber, err=\n\t%w", txtNumMod, resNum.Err())
 		return lev0.NewErr[IModNumFix](err)
 	}
 	sf := &moduleNum{
-		num: AModNum(iNum),
+		num: AModNum(resNum.Ok()),
 	}
 	return lev0.NewOk(IModNumFix(sf))
 }

+ 1 - 1
v4/lev3/mod_ent/module_name/module_name.go

@@ -27,7 +27,7 @@ type ModuleName struct {
 func NewModuleName(val AModuleName) *ModuleName {
 	helpers.Hassert(val != "", "NewAModuleName(): val is empty")
 	sf := &ModuleName{
-		name: defs.Txt(val),
+		name: defs.TxtFix(val),
 	}
 	_ = IModuleNameFix(sf)
 	return sf

+ 1 - 1
v4/lev3/mod_kctx/mod_kctx.go

@@ -55,7 +55,7 @@ func GetModuleKernelCtx() *ModuleKernelCtx {
 
 // Run -- запускает модуль в работу.
 func (sf *ModuleKernelCtx) Run() {
-	msg := defs.Txt("ModuleKernelCtx.Run(): module=%v, is run", sf.Name())
+	msg := defs.TxtFix("ModuleKernelCtx.Run(): module=%v, is run", sf.Name())
 	sf.log.Info(msg)
 	go sf.kServHttp.Run()
 }

+ 1 - 1
v4/lev3/mod_kctx/mod_kctx_test.go

@@ -40,7 +40,7 @@ func TestModKernelCtx(t *testing.T) {
 	}
 	fnClear()
 	defer fnClear()
-	sf.kCtx.Set(defs.Txt("monolitName"), "test_monolit", defs.Txt("test"))
+	sf.kCtx.Set(defs.TxtFix("monolitName"), "test_monolit", defs.TxtFix("test"))
 	sf.new()
 	sf.done()
 }

+ 1 - 1
v4/lev3/mod_keeper/mod_keeper.go

@@ -57,7 +57,7 @@ func GetModuleKeeper() *ModuleKeeper {
 
 // Run -- запускает модуль в работу.
 func (sf *ModuleKeeper) Run() {
-	sf.log.Info(defs.Txt("ModuleKernelCtx.Run(): module=%v, is run", sf.Name()))
+	sf.log.Info(defs.TxtFix("ModuleKernelCtx.Run(): module=%v, is run", sf.Name()))
 	go sf.kServHttp.Run()
 }
 

+ 3 - 1
v4/lev3/mod_keeper/mod_keeper_test.go

@@ -40,7 +40,9 @@ func TestModKeeper(t *testing.T) {
 	}
 	fnClear()
 	defer fnClear()
-	sf.kCtx.Set(defs.Txt("monolitName"), "test_monolit", defs.Txt("test"))
+	sf.kCtx.Set(defs.TxtFix("monolitName"),
+		"test_monolit",
+		defs.TxtFix("test"))
 	sf.new()
 	sf.done()
 }

+ 2 - 2
v4/lev3/mod_serv_http/btn_modules/btn_modules.go

@@ -25,7 +25,7 @@ func NewBtnModules() *BtnModules {
 	sf := &BtnModules{
 		kCtx: kctx.GetKernelCtx(),
 	}
-	sf.btn = wui.NewWuiButton(defs.Txt("Modules"), sf.clickMonolit)
+	sf.btn = wui.NewWuiButton(defs.TxtFix("Modules"), sf.clickMonolit)
 	sf.btn.Hx().Target().Set("#modules")
 	return sf
 }
@@ -43,7 +43,7 @@ var strBlockRow string
 
 // Событие клика по кнопке.
 func (sf *BtnModules) clickMonolit(dict map[string]string) mL0.IResult[defs.ITxtFix] {
-	optMonolit := sf.kCtx.Get(defs.Txt("monolit"))
+	optMonolit := sf.kCtx.Get(defs.TxtFix("monolit"))
 	if optMonolit.IsNone() {
 		err := defs.Err("clickMonolit(): monolit module not found")
 		return mL0.NewErr[defs.ITxtFix](err)

+ 2 - 2
v4/lev3/mod_serv_http/btn_modules/btn_modules_test.go

@@ -16,13 +16,13 @@ func TestBtnModules(t *testing.T) {
 		t.Fatalf("html is empty")
 	}
 	kCtx := kctx.GetKernelCtx()
-	kCtx.Set(defs.Txt("isLocal"), true, "test")
+	kCtx.Set(defs.TxtFix("isLocal"), true, "test")
 	kMon := kmonolit.GetMonolit("test")
 	modName := module_name.IModuleNameFix(module_name.NewModuleName("test"))
 	mod := kmodule.NewKernelModule(modName)
 	kMon.Add(mod)
 	if str := btn.clickMonolit(map[string]string{}).
-		Hassert(defs.Txt("TestBtnModules()")); str.Get() == "" {
+		Hassert("TestBtnModules()"); str.Get() == "" {
 		t.Fatalf("strOut is empty")
 	}
 }

+ 1 - 1
v4/lev3/mod_serv_http/btn_monolit/btn_monolit.go

@@ -17,7 +17,7 @@ type BtnMonolit struct {
 // NewBtnMonolit -- возвращает новую кнопку монолита.
 func NewBtnMonolit() *BtnMonolit {
 	sf := &BtnMonolit{}
-	sf.btn = wui.NewWuiButton(defs.Txt("Monolit"), sf.clickMonolit)
+	sf.btn = wui.NewWuiButton(defs.TxtFix("Monolit"), sf.clickMonolit)
 	sf.btn.Hx().Target().Set("#monolit")
 	return sf
 }

+ 2 - 2
v4/lev3/mod_serv_http/btn_monolit/btn_monolit_test.go

@@ -16,13 +16,13 @@ func TestBtnModules(t *testing.T) {
 		t.Fatalf("html is empty")
 	}
 	kCtx := kctx.GetKernelCtx()
-	kCtx.Set(defs.Txt("isLocal"), true, "test")
+	kCtx.Set(defs.TxtFix("isLocal"), true, "test")
 	kMon := kmonolit.GetMonolit("test")
 	modName := module_name.IModuleNameFix(module_name.NewModuleName("test"))
 	mod := kmodule.NewKernelModule(modName)
 	kMon.Add(mod)
 	if str := btn.clickMonolit(map[string]string{}).
-		Hassert(defs.Txt("TestBtnModules()")); str.Get() == "" {
+		Hassert("TestBtnModules()"); str.Get() == "" {
 		t.Fatalf("strOut is empty")
 	}
 }

+ 1 - 1
v4/lev3/mod_serv_http/http_api/http_api.go

@@ -18,7 +18,7 @@ type HttpApi struct{}
 func NewHttpApi() mL0.IResult[*HttpApi] {
 	sf := &HttpApi{}
 	kCtx := kctx.GetKernelCtx()
-	optFiber := kCtx.Get(defs.Txt("fiberApp"))
+	optFiber := kCtx.Get(defs.TxtFix("fiberApp"))
 	if optFiber.IsNone() {
 		err := defs.Err("NewHttpApi(): not found fiberApp in kernel ctx")
 		return mL0.NewErr[*HttpApi](err)

+ 2 - 2
v4/lev3/mod_serv_http/http_api/http_api_test.go

@@ -63,11 +63,11 @@ func (sf *tester) new() {
 	_ = mock_env.MakeEnv()
 	_ = os.Unsetenv("LOCAL_HTTP_URL")
 	_ = os.Setenv("LOCAL_HTTP_URL", "http://localhost:18312/")
-	sf.kCtx.Set(defs.Txt("isLocal"), true, "testing")
+	sf.kCtx.Set(defs.TxtFix("isLocal"), true, "testing")
 	_ = kmonolit.GetMonolit("test_monolit")
 	sf.serv = kserv_http.GetKernelServHttp()
 
-	sf.api = NewHttpApi().Hassert(defs.Txt("new()"))
+	sf.api = NewHttpApi().Hassert("new()")
 	if sf.api == nil {
 		sf.t.Fatalf("new(): page==nil")
 	}

+ 1 - 1
v4/lev3/mod_serv_http/mod_serv_http.go

@@ -52,7 +52,7 @@ func GetModuleServHttp() *ModuleServHttp {
 
 // Run -- запускает модуль в работу.
 func (sf *ModuleServHttp) Run() {
-	msg := defs.Txt("ModuleServHttp.Run(): module=%v, is run", sf.Name())
+	msg := defs.TxtFix("ModuleServHttp.Run(): module=%v, is run", sf.Name())
 	sf.log.Info(msg)
 	go sf.kServHttp.Run()
 }

+ 1 - 1
v4/lev3/mod_serv_http/mod_serv_http_test.go

@@ -45,7 +45,7 @@ func TestModServHttp(t *testing.T) {
 	}
 	fnClear()
 	defer fnClear()
-	sf.ctx.Set(defs.Txt("monolitName"), "test_monolit", "test")
+	sf.ctx.Set(defs.TxtFix("monolitName"), "test_monolit", "test")
 	sf.new()
 	sf.done()
 }

+ 9 - 9
v4/lev3/mod_serv_http/page_module/page_module.go

@@ -24,7 +24,7 @@ type PageModule struct {
 
 var (
 	page        *PageModule
-	txtFiberApp = defs.Txt("fiberApp")
+	txtFiberApp = defs.TxtFix("fiberApp")
 )
 
 // GetPageModule -- возвращает страницу модуля.
@@ -60,7 +60,7 @@ var strLogBlock string
 // Возвращает страницу лога модуля.
 func (sf *PageModule) postModuleLog(ctx fiber.Ctx) error {
 	_modNum := ctx.Params("id", "1")
-	resNum := mod_num.FromStr(_modNum)
+	resNum := mod_num.FromStr(defs.TxtFix(_modNum))
 	if resNum.IsErr() {
 		return ctx.SendString(resNum.Err().Error())
 	}
@@ -101,7 +101,7 @@ var strCtxRowBlock string
 // Возвращает блок контекста монолита.
 func (sf *PageModule) postModuleCtx(ctx fiber.Ctx) error {
 	_modNum := ctx.Params("id", "1")
-	resNum := mod_num.FromStr(_modNum)
+	resNum := mod_num.FromStr(defs.TxtFix(_modNum))
 	if resNum.IsErr() {
 		err := fmt.Errorf("PageModule.postModuleCtx(): in extract module num(%q), err=\n\t%w",
 			_modNum, resNum.Err())
@@ -156,7 +156,7 @@ var strStateModuleBlock string
 // Показывает состояние модуля.
 func (sf *PageModule) postModuleState(ctx fiber.Ctx) error {
 	_modNum := ctx.Params("id", "1")
-	resNum := mod_num.FromStr(_modNum)
+	resNum := mod_num.FromStr(defs.TxtFix(_modNum))
 	if resNum.IsErr() {
 		err := fmt.Errorf("PageModule.postModuleState(): in extract module num(%q), err=\n\t%w",
 			_modNum, resNum.Err())
@@ -187,7 +187,7 @@ func (sf *PageModule) postModuleState(ctx fiber.Ctx) error {
 // Показывает состояние модуля.
 func (sf *PageModule) postModule(ctx fiber.Ctx) error {
 	_modNum := ctx.Params("id", "1")
-	resNum := mod_num.FromStr(_modNum)
+	resNum := mod_num.FromStr(defs.TxtFix(_modNum))
 	if resNum.IsErr() {
 		err := fmt.Errorf("PageModule.postModule(): in extract module num(%q), err=\n\t%w",
 			_modNum, resNum.Err())
@@ -225,7 +225,7 @@ func (sf *PageModule) postModule(ctx fiber.Ctx) error {
 // Возвращает секундную статистику модуля.
 func (sf *PageModule) postSvgDay(ctx fiber.Ctx) error {
 	_modNum := ctx.Params("id", "1")
-	resNum := mod_num.FromStr(_modNum)
+	resNum := mod_num.FromStr(defs.TxtFix(_modNum))
 	if resNum.IsErr() {
 		err := fmt.Errorf("PageModule.postSvgDay(): in extract module num(%q), err=\n\t%w",
 			_modNum, resNum.Err())
@@ -244,7 +244,7 @@ func (sf *PageModule) postSvgDay(ctx fiber.Ctx) error {
 // Возвращает секундную статистику модуля.
 func (sf *PageModule) postSvgMin(ctx fiber.Ctx) error {
 	_modNum := ctx.Params("id", "1")
-	resNum := mod_num.FromStr(_modNum)
+	resNum := mod_num.FromStr(defs.TxtFix(_modNum))
 	if resNum.IsErr() {
 		err := fmt.Errorf("PageModule.postSvgMin(): in extract module num(%q), err=\n\t%w",
 			_modNum, resNum.Err())
@@ -263,7 +263,7 @@ func (sf *PageModule) postSvgMin(ctx fiber.Ctx) error {
 // Возвращает секундную статистику модуля.
 func (sf *PageModule) postSvgSec(ctx fiber.Ctx) error {
 	_modNum := ctx.Params("id", "1")
-	resNum := mod_num.FromStr(_modNum)
+	resNum := mod_num.FromStr(defs.TxtFix(_modNum))
 	if resNum.IsErr() {
 		err := fmt.Errorf("PageModule.postSvgSec(): in extract module num(%q), err=\n\t%w",
 			_modNum, resNum.Err())
@@ -281,7 +281,7 @@ func (sf *PageModule) postSvgSec(ctx fiber.Ctx) error {
 
 // Возвращает модуль.
 func (sf *PageModule) getModule(modNum mod_num.IModNumFix) (mod_spec.IKernelModule, comp_spec.ICtxValue) {
-	optMonolit := sf.ctx.Get(defs.Txt("monolit"))
+	optMonolit := sf.ctx.Get(defs.TxtFix("monolit"))
 	if optMonolit.IsNone() {
 		return nil, nil
 	}

+ 12 - 12
v4/lev3/mod_serv_http/page_module/page_module_test.go

@@ -114,11 +114,11 @@ func (sf *tester) comSvgPost() *fiber.App {
 	ctxMon := mon.Ctx()
 	modName := module_name.IModuleNameFix(module_name.NewModuleName("kCtx"))
 	kMod := kmodule.NewKernelModule(modName)
-	kMod.Log().Debug(defs.Txt("test msg"))
+	kMod.Log().Debug(defs.TxtFix("test msg"))
 	ctxMod := kMod.Ctx()
-	ctxMod.Set(defs.Txt("demo_key"), "demo value", defs.Txt("for demo comment"))
+	ctxMod.Set(defs.TxtFix("demo_key"), "demo value", defs.TxtFix("for demo comment"))
 	time.Sleep(time.Millisecond * 20)
-	ctxMon.Set(defs.Txt("module_1"), kMod, defs.Txt("test_module"))
+	ctxMon.Set(defs.TxtFix("module_1"), kMod, defs.TxtFix("test_module"))
 	fiberApp := sf.serv.Fiber()
 	return fiberApp
 }
@@ -131,11 +131,11 @@ func (sf *tester) postSvgMinBad1() {
 	ctxMon := mon.Ctx()
 	modName := module_name.IModuleNameFix(module_name.NewModuleName("kCtx"))
 	kMod := kmodule.NewKernelModule(modName)
-	kMod.Log().Debug(defs.Txt("test msg"))
+	kMod.Log().Debug(defs.TxtFix("test msg"))
 	ctxMod := kMod.Ctx()
-	ctxMod.Set(defs.Txt("demo_key"), "demo value", "for demo comment")
+	ctxMod.Set(defs.TxtFix("demo_key"), "demo value", "for demo comment")
 	time.Sleep(time.Millisecond * 20)
-	ctxMon.Set(defs.Txt("module_1"), kMod, "test_module")
+	ctxMon.Set(defs.TxtFix("module_1"), kMod, "test_module")
 	fiberApp := sf.serv.Fiber()
 	req, err := http.NewRequest(http.MethodPost, "/module_svg_min/svg_min_20.svg", nil)
 	if err != nil {
@@ -253,7 +253,7 @@ func (sf *tester) postModuleState() {
 	}
 }
 
-var testMsg = defs.Txt("test msg")
+var testMsg = defs.TxtFix("test msg")
 
 // Возвращает состояние модуля 1 (теперь добавлен).
 func (sf *tester) postModule1() {
@@ -265,9 +265,9 @@ func (sf *tester) postModule1() {
 	module.Log().Debug(testMsg)
 	module.Log().Debug(testMsg)
 	ctxMod := module.Ctx()
-	ctxMod.Set(defs.Txt("demo_key"), "demo value", "for demo comment")
+	ctxMod.Set(defs.TxtFix("demo_key"), "demo value", "for demo comment")
 	time.Sleep(time.Millisecond * 20)
-	ctxMon.Set(defs.Txt("module_1"), module, "test_module")
+	ctxMon.Set(defs.TxtFix("module_1"), module, "test_module")
 	fiberApp := sf.serv.Fiber()
 	req, err := http.NewRequest(http.MethodPost, "/module/1", nil)
 	if err != nil {
@@ -288,7 +288,7 @@ func (sf *tester) postModule1() {
 // Возвращает состояние лога модуля.
 func (sf *tester) postModuleLog() {
 	sf.t.Log("postModuleLog")
-	monCtx := sf.ctx.Get(defs.Txt("monolit")).Hassert(defs.Txt("postModuleLog()"))
+	monCtx := sf.ctx.Get(defs.TxtFix("monolit")).Hassert("postModuleLog()")
 	mon := monCtx.Val().(mod_spec.IKernelMonolit)
 	log := mon.Log()
 	log.Debug(testMsg)
@@ -362,11 +362,11 @@ func (sf *tester) new() {
 	_ = mock_env.MakeEnv()
 	_ = os.Unsetenv("LOCAL_HTTP_URL")
 	_ = os.Setenv("LOCAL_HTTP_URL", "http://localhost:18322/")
-	sf.ctx.Set(defs.Txt("isLocal"), true, "testing")
+	sf.ctx.Set(defs.TxtFix("isLocal"), true, "testing")
 	_ = kmonolit.GetMonolit("test_monolit")
 	sf.serv = kserv_http.GetKernelServHttp()
 
-	sf.page = GetPageModule().Hassert(defs.Txt("new()"))
+	sf.page = GetPageModule().Hassert("new()")
 	if sf.page == nil {
 		sf.t.Fatalf("new(): page==nil")
 	}

+ 5 - 6
v4/lev3/mod_serv_http/page_monolit/page_monolit.go

@@ -42,9 +42,8 @@ func GetPageMonolit() *PageMonolit {
 		btnModules: btn_modules.NewBtnModules(),
 	}
 
-	optFiber := sf.kCtx.Get(defs.Txt("fiberApp"))
-	optFiber.Hassert(
-		defs.Txt("GetPageMonolit(): mod='monolit', not found fiberApp in kernel ctx"))
+	optFiber := sf.kCtx.Get(defs.TxtFix("fiberApp"))
+	optFiber.Hassert("GetPageMonolit(): mod='monolit', not found fiberApp in kernel ctx")
 	fiberApp := optFiber.Some().Val().(*fiber.App)
 	fiberApp.Get("/monolit", sf.getMonolit)
 	fiberApp.Post("/monolit_state", sf.postMonolitState)
@@ -64,7 +63,7 @@ var strLogBlock string
 
 // Возвращает страницу лога монолита.
 func (sf *PageMonolit) postMonolitLog(ctx fiber.Ctx) error {
-	optMonolit := sf.kCtx.Get(defs.Txt("monolit"))
+	optMonolit := sf.kCtx.Get(defs.TxtFix("monolit"))
 	if optMonolit.IsNone() {
 		err := fmt.Errorf("PageMonolit.postMonolitLog(): mod='monolit', not found monolit in kernel ctx")
 		return err
@@ -91,7 +90,7 @@ var strCtxRowBlock string
 
 // Возвращает блок контекста монолита.
 func (sf *PageMonolit) postMonolitCtx(ctx fiber.Ctx) error {
-	optMon := sf.kCtx.Get(defs.Txt("monolit"))
+	optMon := sf.kCtx.Get(defs.TxtFix("monolit"))
 	if optMon.IsNone() {
 		err := fmt.Errorf("PageMonolit.postMonolitCtx(): mod='monolit', not found monolit in kernel ctx")
 		return err
@@ -121,7 +120,7 @@ var strStateMonolit string
 // Показывает состояние монолита.
 func (sf *PageMonolit) postMonolitState(ctx fiber.Ctx) error {
 	dictState := map[string]any{}
-	optMonolit := sf.kCtx.Get(defs.Txt("monolit"))
+	optMonolit := sf.kCtx.Get(defs.TxtFix("monolit"))
 	if optMonolit.IsNone() {
 		err := fmt.Errorf("PageMonolit.postMonolitState(): mod='monolit', not found monolit from kernel ctx")
 		return err

+ 5 - 5
v4/lev3/mod_serv_http/page_monolit/page_monolit_test.go

@@ -38,11 +38,11 @@ func TestPageMonolit(t *testing.T) {
 // Возвращает состояние лога монолита.
 func (sf *tester) postMonolitLog() {
 	sf.t.Log("postMonolitCtx")
-	mon := sf.ctx.Get(defs.Txt("monolit")).
-		Hassert(defs.Txt("postMonolitLog()")).
+	mon := sf.ctx.Get(defs.TxtFix("monolit")).
+		Hassert("postMonolitLog()").
 		Val().(mod_spec.IKernelMonolit)
 	log := mon.Log()
-	log.Debug(defs.Txt("test msg"))
+	log.Debug(defs.TxtFix("test msg"))
 	fiberApp := sf.serv.Fiber()
 	req, err := http.NewRequest(http.MethodPost, "/monolit_log", nil)
 	if err != nil {
@@ -134,8 +134,8 @@ func (sf *tester) new() {
 	_ = mock_env.MakeEnv()
 	_ = os.Unsetenv("LOCAL_HTTP_URL")
 	_ = os.Setenv("LOCAL_HTTP_URL", "http://localhost:18310/")
-	strLocal := defs.Txt("isLocal")
-	sf.ctx.Set(strLocal, true, defs.Txt("testing"))
+	strLocal := defs.TxtFix("isLocal")
+	sf.ctx.Set(strLocal, true, defs.TxtFix("testing"))
 	for {
 		time.Sleep(time.Millisecond * 1)
 		if sf.ctx.Get(strLocal) != nil {

+ 5 - 6
v4/lev3/mod_wui/mod_wui.go

@@ -60,9 +60,8 @@ func GetModuleWui() *ModuleWui {
 	_ = page_module.GetPageModule()
 
 	_ = http_api.NewHttpApi()
-	optFiber := sf.kCtx.Get(defs.Txt("fiberApp"))
-	msg := defs.Txt("GetModuleWui(): mod='wui', not found fiberApp in kernel ctx")
-	optFiber.Hassert(msg)
+	optFiber := sf.kCtx.Get(defs.TxtFix("fiberApp"))
+	optFiber.Hassert("GetModuleWui(): mod='wui', not found fiberApp in kernel ctx")
 	fibApp := optFiber.Some().Val().(*fiber.App)
 	fibApp.Post("/wui/click/:id", adaptor.HTTPHandlerFunc(sf.wuiClick)) // adaptor.HTTPHandlerFunc(greet)
 	mod = sf
@@ -71,7 +70,7 @@ func GetModuleWui() *ModuleWui {
 
 // Run -- запускает модуль в работу.
 func (sf *ModuleWui) Run() {
-	msg := defs.Txt("ModuleWui.Run(): module=%v, is run", sf.Name())
+	msg := defs.TxtFix("ModuleWui.Run(): module=%v, is run", sf.Name())
 	sf.log.Info(msg)
 	sf.kServHttp.Run()
 }
@@ -88,9 +87,9 @@ func (sf *ModuleWui) IsWork() mKs.EBool {
 
 // Получает событие из сети.
 func (sf *ModuleWui) wuiClick(resp http.ResponseWriter, req *http.Request) {
-	url := defs.Txt(req.RequestURI)
+	url := defs.TxtFix(req.RequestURI)
 	id := strings.TrimPrefix(url.String(), "/wui/click/")
-	optWidget := sf.wCtx.Get(defs.Txt(id))
+	optWidget := sf.wCtx.Get(defs.TxtFix(id))
 	if optWidget == nil {
 		err := defs.Err("ModuleWui.wuiClick(): id(%v), widget not exists", id)
 		sf.log.Err(err)

+ 8 - 8
v4/lev3/mod_wui/mod_wui_test.go

@@ -51,9 +51,9 @@ func TestModKernelCtx(t *testing.T) {
 	fnClear()
 
 	defer fnClear()
-	sf.kCtx.Set(defs.Txt("monolitName"),
+	sf.kCtx.Set(defs.TxtFix("monolitName"),
 		"test_monolit",
-		defs.Txt("test"))
+		defs.TxtFix("test"))
 	sf.new()
 	sf.click()
 	sf.done()
@@ -72,7 +72,7 @@ func (sf *tester) click() {
 // С кривой POST-формой.
 func (sf *tester) clickBad3() {
 	sf.t.Log("clickBad3")
-	btn := wui_button.NewWuiButton(defs.Txt("test_btn"), sf.fnClick)
+	btn := wui_button.NewWuiButton(defs.TxtFix("test_btn"), sf.fnClick)
 	// Данные формы
 	reader := strings.NewReader("tra-ta-ta")
 	req, err := http.NewRequest(http.MethodPost, "/wui/click/"+btn.Id().String(), reader)
@@ -100,7 +100,7 @@ func (sf *tester) clickBad3() {
 // С POST-формой.
 func (sf *tester) clickGood2() {
 	sf.t.Log("clickGood2")
-	btn := wui_button.NewWuiButton(defs.Txt("test_btn"), sf.fnClick)
+	btn := wui_button.NewWuiButton(defs.TxtFix("test_btn"), sf.fnClick)
 	// Данные формы
 	formData := url.Values{
 		"username": {"john_doe"},
@@ -134,7 +134,7 @@ func (sf *tester) clickGood2() {
 // Без POST-формы.
 func (sf *tester) clickGood1() {
 	sf.t.Log("clickGood1")
-	btn := wui_button.NewWuiButton(defs.Txt("test_btn"), sf.fnClick)
+	btn := wui_button.NewWuiButton(defs.TxtFix("test_btn"), sf.fnClick)
 	req, err := http.NewRequest(http.MethodPost, "/wui/click/"+btn.Id().String(), nil)
 
 	if err != nil {
@@ -162,8 +162,8 @@ func (sf *tester) fnClick(dict map[string]string) mL0.IResult[defs.ITxtFix] {
 // Неправильный тип объекта.
 func (sf *tester) clickBad2() {
 	sf.t.Log("clickBad2")
-	lbl := wui_label.NewWuiLabel(defs.Txt("test_lbl")).
-		Hassert(defs.Txt("clickBad2()"))
+	lbl := wui_label.NewWuiLabel(defs.TxtFix("test_lbl")).
+		Hassert("clickBad2()")
 	req, err := http.NewRequest(http.MethodPost, "/wui/click/"+lbl.Id().String(), nil)
 
 	if err != nil {
@@ -234,7 +234,7 @@ func (sf *tester) newGood1() {
 
 	sf.mod = GetModuleWui()
 	kCtx := kctx.GetKernelCtx()
-	kCtx.Set(defs.Txt("isLocal"), true, "type msg bus")
+	kCtx.Set(defs.TxtFix("isLocal"), true, "type msg bus")
 
 	_ = kmonolit.GetMonolit("test_monolit")
 	_ = GetModuleWui()