moira

Форк
0
/
helpers.go 
108 строк · 1.7 Кб
1
package moira
2

3
import (
4
	"io/ioutil"
5
	"math"
6
	"os"
7

8
	"github.com/satori/go.uuid"
9
)
10

11
const (
12
	maxUint = ^uint(0)
13
	minUint = 0
14
	maxInt  = int(maxUint >> 1)
15
	minInt  = -maxInt - 1
16
)
17

18
// GetFileContent reads file and returns its content as string
19
func GetFileContent(filePath string) (string, error) {
20
	file, err := os.Open(filePath)
21
	if err != nil {
22
		return "", err
23
	}
24
	defer file.Close()
25

26
	bytes, err := ioutil.ReadAll(file)
27
	return string(bytes), err
28
}
29

30
func MaxI(args ...int) int {
31
	result := minInt
32
	for _, arg := range args {
33
		if arg > result {
34
			result = arg
35
		}
36
	}
37
	return result
38
}
39

40
func MaxI32(args ...int32) int32 {
41
	result := int32(math.MinInt32)
42
	for _, arg := range args {
43
		if arg > result {
44
			result = arg
45
		}
46
	}
47
	return result
48
}
49

50
func MaxI64(args ...int64) int64 {
51
	result := int64(math.MinInt64)
52
	for _, arg := range args {
53
		if arg > result {
54
			result = arg
55
		}
56
	}
57
	return result
58
}
59

60
func MinI(args ...int) int {
61
	result := maxInt
62
	for _, arg := range args {
63
		if arg < result {
64
			result = arg
65
		}
66
	}
67
	return result
68
}
69

70
func MinI32(args ...int32) int32 {
71
	result := int32(math.MaxInt32)
72
	for _, arg := range args {
73
		if arg < result {
74
			result = arg
75
		}
76
	}
77
	return result
78
}
79

80
func MinI64(args ...int64) int64 {
81
	result := int64(math.MaxInt64)
82
	for _, arg := range args {
83
		if arg < result {
84
			result = arg
85
		}
86
	}
87
	return result
88
}
89

90
func NewStrID() string {
91
	return uuid.NewV4().String()
92
}
93

94
// UseString gets pointer value of string or default string if pointer is nil
95
func UseString(str *string) string {
96
	if str == nil {
97
		return ""
98
	}
99
	return *str
100
}
101

102
// UseFloat64 gets pointer value of float64 or default float64 if pointer is nil
103
func UseFloat64(f *float64) float64 {
104
	if f == nil {
105
		return 0
106
	}
107
	return *f
108
}
109

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.