added put/get and write/read bool

This commit is contained in:
2025-09-11 11:06:45 +00:00
parent 654fcbb06b
commit 73642af14f
2 changed files with 82 additions and 0 deletions

View File

@@ -710,6 +710,18 @@ func PutString16(a []byte, str string) error {
return nil
}
func PutBool(a []byte, flag bool) error {
if len(a) == 0 {
return ErrNoSpace
}
if flag {
a[0] = 1
} else {
a[0] = 0
}
return nil
}
// GET
// GetInt16 - читает из массива 2 байта и декодирует их в int16.
@@ -893,6 +905,17 @@ func GetString16(a []byte) (string, error) {
return string(a[pSize:end]), nil
}
func GetBool(a []byte) (bool, error) {
if len(a) == 0 {
return false, io.ErrUnexpectedEOF
}
if a[0] == 1 {
return true, nil
} else {
return false, nil
}
}
// VAR
// WriteVarUint32 - записывает в Writer от 1 до 5 байт, возвращает количество
@@ -990,6 +1013,15 @@ func WriteVarSize(w io.Writer, n int) (int, error) {
return w.Write(a)
}
func WriteBool(w io.Writer, flag bool) (err error) {
var b byte
if flag {
b = 1
}
_, err = w.Write([]byte{b})
return
}
func ReadVarSize(src io.Reader) (_ int, err error) {
var (
b byte
@@ -1014,3 +1046,11 @@ func ReadVarSize(src io.Reader) (_ int, err error) {
num |= uint64(b) << 56
return int(num), nil
}
func ReadBool(src io.Reader) (bool, error) {
b, err := ReadByte(src)
if err != nil {
return false, err
}
return b == 1, nil
}