mirror of
https://github.com/AynaLivePlayer/blivedm-go.git
synced 2025-12-06 11:22:50 +08:00
43 lines
754 B
Go
43 lines
754 B
Go
package utils
|
|
|
|
import (
|
|
"encoding/base64"
|
|
"strconv"
|
|
"unsafe"
|
|
)
|
|
|
|
func StringToBytes(s string) []byte {
|
|
if len(s) == 0 {
|
|
return nil
|
|
}
|
|
return unsafe.Slice(unsafe.StringData(s), len(s))
|
|
}
|
|
|
|
func BytesToString(b []byte) string {
|
|
if len(b) == 0 {
|
|
return ""
|
|
}
|
|
return unsafe.String(unsafe.SliceData(b), len(b))
|
|
}
|
|
|
|
func B64Decode(s string) ([]byte, error) {
|
|
dst := make([]byte, base64.StdEncoding.DecodedLen(len(s)))
|
|
n, err := base64.StdEncoding.Decode(dst, []byte(s))
|
|
if err != nil {
|
|
return dst, err
|
|
}
|
|
dst = dst[:n]
|
|
return dst, nil
|
|
}
|
|
|
|
func HexToUint32(s string, prefixLen int) uint32 {
|
|
if len(s) <= prefixLen {
|
|
return 0
|
|
}
|
|
parseInt, err := strconv.ParseInt(s[prefixLen:], 16, 64)
|
|
if err != nil {
|
|
return 0
|
|
}
|
|
return uint32(parseInt)
|
|
}
|