start minIO, refactored files into packages
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
package convertions
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strconv"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"go-socket/packages/types"
|
||||
|
||||
"github.com/google/uuid"
|
||||
)
|
||||
|
||||
func ConvertStringUint32(s string) (uint32, error) {
|
||||
v, err := strconv.ParseUint(s, 10, 32)
|
||||
return uint32(v), err
|
||||
}
|
||||
|
||||
func ConvertStringToRgba(str string) (*types.Rgba, error) {
|
||||
parts := strings.SplitN(str, ",", 5)
|
||||
if len(parts) != 4 {
|
||||
return nil, fmt.Errorf("invalid rgba")
|
||||
}
|
||||
rgba := &types.Rgba{}
|
||||
for i, p := range parts {
|
||||
n, err := strconv.ParseUint(strings.TrimSpace(p), 10, 8)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("invalid component %d: %w", i, err)
|
||||
}
|
||||
rgba[i] = uint8(n)
|
||||
}
|
||||
return rgba, nil
|
||||
}
|
||||
|
||||
func RgbaToUint32(r *types.Rgba) uint32 {
|
||||
return uint32(r[0])<<24 | uint32(r[1])<<16 | uint32(r[2])<<8 | uint32(r[3])
|
||||
}
|
||||
|
||||
func Uint32ToRgba(v uint32) *types.Rgba {
|
||||
return &types.Rgba{uint8(v >> 24), uint8(v >> 16), uint8(v >> 8), uint8(v)}
|
||||
}
|
||||
|
||||
func ConvertStringUuid(str string) (uuid.UUID, error) {
|
||||
return uuid.Parse(str)
|
||||
}
|
||||
|
||||
func ConvertStringTimestamp(str string) (time.Time, error) {
|
||||
return time.Parse(time.RFC3339, str)
|
||||
}
|
||||
Reference in New Issue
Block a user