moira
/
helpers.go
108 строк · 1.7 Кб
1package moira
2
3import (
4"io/ioutil"
5"math"
6"os"
7
8"github.com/satori/go.uuid"
9)
10
11const (
12maxUint = ^uint(0)
13minUint = 0
14maxInt = int(maxUint >> 1)
15minInt = -maxInt - 1
16)
17
18// GetFileContent reads file and returns its content as string
19func GetFileContent(filePath string) (string, error) {
20file, err := os.Open(filePath)
21if err != nil {
22return "", err
23}
24defer file.Close()
25
26bytes, err := ioutil.ReadAll(file)
27return string(bytes), err
28}
29
30func MaxI(args ...int) int {
31result := minInt
32for _, arg := range args {
33if arg > result {
34result = arg
35}
36}
37return result
38}
39
40func MaxI32(args ...int32) int32 {
41result := int32(math.MinInt32)
42for _, arg := range args {
43if arg > result {
44result = arg
45}
46}
47return result
48}
49
50func MaxI64(args ...int64) int64 {
51result := int64(math.MinInt64)
52for _, arg := range args {
53if arg > result {
54result = arg
55}
56}
57return result
58}
59
60func MinI(args ...int) int {
61result := maxInt
62for _, arg := range args {
63if arg < result {
64result = arg
65}
66}
67return result
68}
69
70func MinI32(args ...int32) int32 {
71result := int32(math.MaxInt32)
72for _, arg := range args {
73if arg < result {
74result = arg
75}
76}
77return result
78}
79
80func MinI64(args ...int64) int64 {
81result := int64(math.MaxInt64)
82for _, arg := range args {
83if arg < result {
84result = arg
85}
86}
87return result
88}
89
90func NewStrID() string {
91return uuid.NewV4().String()
92}
93
94// UseString gets pointer value of string or default string if pointer is nil
95func UseString(str *string) string {
96if str == nil {
97return ""
98}
99return *str
100}
101
102// UseFloat64 gets pointer value of float64 or default float64 if pointer is nil
103func UseFloat64(f *float64) float64 {
104if f == nil {
105return 0
106}
107return *f
108}
109