mirror of
https://github.com/ManyakRus/starter.git
synced 2025-11-24 22:53:52 +02:00
сделал constraints
This commit is contained in:
54
constraints/constraints.go
Normal file
54
constraints/constraints.go
Normal file
@@ -0,0 +1,54 @@
|
||||
// Copyright 2021 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// Package constraints defines a set of useful constraints to be used
|
||||
// with type parameters.
|
||||
package constraints
|
||||
|
||||
import "cmp"
|
||||
|
||||
// Signed is a constraint that permits any signed integer type.
|
||||
// If future releases of Go add new predeclared signed integer types,
|
||||
// this constraint will be modified to include them.
|
||||
type Signed interface {
|
||||
~int | ~int8 | ~int16 | ~int32 | ~int64
|
||||
}
|
||||
|
||||
// Unsigned is a constraint that permits any unsigned integer type.
|
||||
// If future releases of Go add new predeclared unsigned integer types,
|
||||
// this constraint will be modified to include them.
|
||||
type Unsigned interface {
|
||||
~uint | ~uint8 | ~uint16 | ~uint32 | ~uint64 | ~uintptr
|
||||
}
|
||||
|
||||
// Integer is a constraint that permits any integer type.
|
||||
// If future releases of Go add new predeclared integer types,
|
||||
// this constraint will be modified to include them.
|
||||
type Integer interface {
|
||||
Signed | Unsigned
|
||||
}
|
||||
|
||||
// Float is a constraint that permits any floating-point type.
|
||||
// If future releases of Go add new predeclared floating-point types,
|
||||
// this constraint will be modified to include them.
|
||||
type Float interface {
|
||||
~float32 | ~float64
|
||||
}
|
||||
|
||||
// Complex is a constraint that permits any complex numeric type.
|
||||
// If future releases of Go add new predeclared complex numeric types,
|
||||
// this constraint will be modified to include them.
|
||||
type Complex interface {
|
||||
~complex64 | ~complex128
|
||||
}
|
||||
|
||||
// Ordered is a constraint that permits any ordered type: any type
|
||||
// that supports the operators < <= >= >.
|
||||
// If future releases of Go add new ordered types,
|
||||
// this constraint will be modified to include them.
|
||||
//
|
||||
// This type is redundant since Go 1.21 introduced [cmp.Ordered].
|
||||
//
|
||||
//go:fix inline
|
||||
type Ordered = cmp.Ordered
|
||||
@@ -1,3 +1,4 @@
|
||||
// копия "golang.org/x/exp/constraints"
|
||||
// модуль с вспомогательными небольшими функциями
|
||||
|
||||
package micro
|
||||
@@ -10,9 +11,9 @@ import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"github.com/ManyakRus/starter/constants_starter"
|
||||
"github.com/ManyakRus/starter/constraints"
|
||||
"github.com/dromara/carbon/v2"
|
||||
"github.com/google/uuid"
|
||||
"golang.org/x/exp/constraints"
|
||||
"google.golang.org/protobuf/types/known/timestamppb"
|
||||
"hash/fnv"
|
||||
"math"
|
||||
@@ -805,7 +806,7 @@ func SaveTempFile_err(bytes []byte) (string, error) {
|
||||
// Hash - возвращает число хэш из строки
|
||||
func Hash(s string) uint32 {
|
||||
h := fnv.New32a()
|
||||
h.Write([]byte(s))
|
||||
_, _ = h.Write([]byte(s))
|
||||
return h.Sum32()
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user