重构代码结构与认证体系,集成异步任务消费者
This commit is contained in:
43
pkg/u/u.go
43
pkg/u/u.go
@@ -1,12 +1,31 @@
|
||||
package u
|
||||
|
||||
import "time"
|
||||
import (
|
||||
"fmt"
|
||||
"time"
|
||||
)
|
||||
|
||||
// P 是一个工具函数,用于在表达式内原地创建一个指针
|
||||
func P[T any](v T) *T {
|
||||
return &v
|
||||
}
|
||||
|
||||
func Z[T any](v *T) T {
|
||||
if v == nil {
|
||||
var zero T
|
||||
return zero
|
||||
}
|
||||
return *v
|
||||
}
|
||||
|
||||
func X[T comparable](v T) *T {
|
||||
var zero T
|
||||
if v == zero {
|
||||
return nil
|
||||
}
|
||||
return &v
|
||||
}
|
||||
|
||||
func Today() time.Time {
|
||||
var now = time.Now()
|
||||
return time.Date(now.Year(), now.Month(), now.Day(), 0, 0, 0, 0, now.Location())
|
||||
@@ -21,14 +40,6 @@ func SameDate(date time.Time) bool {
|
||||
return date.Year() == now.Year() && date.Month() == now.Month() && date.Day() == now.Day()
|
||||
}
|
||||
|
||||
func Z[T any](v *T) T {
|
||||
if v == nil {
|
||||
var zero T
|
||||
return zero
|
||||
}
|
||||
return *v
|
||||
}
|
||||
|
||||
func Or[T any](v *T, or T) T {
|
||||
if v == nil {
|
||||
return or
|
||||
@@ -36,3 +47,17 @@ func Or[T any](v *T, or T) T {
|
||||
return *v
|
||||
}
|
||||
}
|
||||
|
||||
func CombineErrors(errs []error) error {
|
||||
var combinedErr error = nil
|
||||
for _, err := range errs {
|
||||
if err != nil {
|
||||
if combinedErr == nil {
|
||||
combinedErr = err
|
||||
} else {
|
||||
combinedErr = fmt.Errorf("%v; %w", combinedErr, err)
|
||||
}
|
||||
}
|
||||
}
|
||||
return combinedErr
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user