Przeglądaj źródła

SVI Доработка типов; 100.0%

SVI 9 miesięcy temu
rodzic
commit
035992ac66

+ 9 - 9
v2/krn/ktypes/koption.go

@@ -30,8 +30,8 @@ func NewNone[T any]() Option[T] {
 	}
 }
 
-// IsSome - проверяет, есть ли значение
-func (sf *Option[T]) IsSome() bool {
+// IsVal - проверяет, есть ли значение
+func (sf *Option[T]) IsVal() bool {
 	return sf.val != nil
 }
 
@@ -40,22 +40,22 @@ func (sf *Option[T]) IsNone() bool {
 	return sf.val == nil
 }
 
-// Unwrap - извлекает значение (паника, если None)
-func (sf *Option[T]) Unwrap() T {
-	Hassert(sf.val != nil, "Option[T].Unwrap(): val==nil!")
+// Val - извлекает значение (паника, если None)
+func (sf *Option[T]) Val() T {
+	Hassert(sf.val != nil, "Option[T].Val(): val==nil!")
 	return *sf.val
 }
 
-// UnwrapOr - возвращает значение или дефолтное
-func (sf Option[T]) UnwrapOr(defaultValue T) T {
+// ValOr - возвращает значение или дефолтное
+func (sf Option[T]) ValOr(defaultValue T) T {
 	if sf.val == nil {
 		return defaultValue
 	}
 	return *sf.val
 }
 
-// UnwrapOrFn -- возвращает значение, если оно есть, или результат выполнения функции
-func (sf *Option[T]) UnwrapOrFn(fn func() T) T {
+// ValOrFn -- возвращает значение, если оно есть, или результат выполнения функции
+func (sf *Option[T]) ValOrFn(fn func() T) T {
 	Hassert(fn != nil, "Result[T].UnwrapOrFn(): fn==nil")
 	if sf.val == nil {
 		return fn()

+ 10 - 10
v2/krn/ktypes/koption_test.go

@@ -32,19 +32,19 @@ func (sf *testerOption) createNoneGood1() {
 		}
 	}()
 	res := NewNone[string]()
-	if res.IsSome() {
+	if res.IsVal() {
 		sf.t.Fatalf("createNoneGood1(): is ok")
 	}
 	if !res.IsNone() {
 		sf.t.Fatalf("createNoneGood1(): not err")
 	}
-	if val := res.UnwrapOr("test2"); val != "test2" {
+	if val := res.ValOr("test2"); val != "test2" {
 		sf.t.Fatalf("createNoneGood1(): val bad")
 	}
-	if val := res.UnwrapOr("test1"); val != "test1" {
+	if val := res.ValOr("test1"); val != "test1" {
 		sf.t.Fatalf("createNoneGood1(): val bad")
 	}
-	if val := res.UnwrapOrFn(sf.fnWrap2); val != "test5" {
+	if val := res.ValOrFn(sf.fnWrap2); val != "test5" {
 		sf.t.Fatalf("createNoneGood1(): val bad")
 	}
 	sf.unwrapErr(res)
@@ -79,7 +79,7 @@ func (sf *testerOption) unwrapErr(res Option[string]) {
 			sf.t.Fatalf("unwrapErr(): panic==nil")
 		}
 	}()
-	_ = res.Unwrap()
+	_ = res.Val()
 }
 
 func (sf *testerOption) createSomeGood2() {
@@ -91,22 +91,22 @@ func (sf *testerOption) createSomeGood2() {
 	}()
 	str := "test val"
 	res := NewSome(str)
-	if !res.IsSome() {
+	if !res.IsVal() {
 		sf.t.Fatalf("createSomeGood1(): not ok")
 	}
 	if res.IsNone() {
 		sf.t.Fatalf("createSomeGood1(): is err")
 	}
-	if val := res.Unwrap(); val != "test val" {
+	if val := res.Val(); val != "test val" {
 		sf.t.Fatalf("createSomeGood1(): val bad")
 	}
-	if val := res.UnwrapOr("test1"); val != "test val" {
+	if val := res.ValOr("test1"); val != "test val" {
 		sf.t.Fatalf("createSomeGood1(): val bad")
 	}
-	if val := res.UnwrapOr("test1"); val != "test val" {
+	if val := res.ValOr("test1"); val != "test val" {
 		sf.t.Fatalf("createSomeGood1(): val bad")
 	}
-	if val := res.UnwrapOrFn(sf.fnWrap); val != "test val" {
+	if val := res.ValOrFn(sf.fnWrap); val != "test val" {
 		sf.t.Fatalf("createSomeGood1(): val bad")
 	}
 	res.Hassert("test")

+ 12 - 4
v2/krn/ktypes/kresult.go

@@ -96,12 +96,20 @@ func (sf *Result[T]) Error() string {
 
 // Hassert -- проверяет, что нет ошибки (с паникой)
 func (sf *Result[T]) Hassert(msgFormat string, args ...any) {
-	msg := fmt.Sprintf(msgFormat, args...)
-	Hassert(!sf.isErr, msg+", err=\n\t%v\n", sf.err)
+	strErr := ""
+	if sf.isErr {
+		strErr = fmt.Sprintf(", err=\n\t%v", sf.err)
+	}
+	msg := fmt.Sprintf(msgFormat+strErr, args...)
+	Hassert(!sf.isErr, msg)
 }
 
 // Assert -- проверяет, что нет ошибки (с паникой только на локальном стенде)
 func (sf *Result[T]) Assert(msgFormat string, args ...any) {
-	msg := fmt.Sprintf(msgFormat, args...)
-	Assert(!sf.isErr, msg+", err=\n\t%v\n", sf.err)
+	strErr := ""
+	if sf.isErr {
+		strErr = fmt.Sprintf(", err=\n\t%v", sf.err)
+	}
+	msg := fmt.Sprintf(msgFormat+strErr, args...)
+	Assert(!sf.isErr, msg)
 }

+ 17 - 4
v2/krn/ktypes/kresult_test.go

@@ -68,17 +68,30 @@ func (sf *testerResult) createErrGood1() {
 	}
 	sf.unwrapErr(res)
 	sf.hassert(res)
-	sf.assert(res)
+	sf.hassert2(res)
+	sf.assert2()
 }
 
-func (sf *testerResult) assert(res Result[string]) {
-	sf.t.Log("assert")
+func (sf *testerResult) assert2() {
+	sf.t.Log("assert2")
+	err := fmt.Errorf("test_error")
+	res := NewErr[bool](err)
+	defer func() {
+		if _panic := recover(); _panic == nil {
+			sf.t.Fatalf("assert2(): panic==nil")
+		}
+	}()
+	res.Assert("test assert2")
+}
+
+func (sf *testerResult) hassert2(res Result[string]) {
+	sf.t.Log("hassert2")
 	defer func() {
 		if _panic := recover(); _panic == nil {
 			sf.t.Fatalf("assert(): panic==nil")
 		}
 	}()
-	res.Hassert("test assert")
+	res.Hassert("test hassert2")
 }
 
 func (sf *testerResult) hassert(res Result[string]) {