Files
Go_I2p/lib/common/string.go

26 lines
434 B
Go
Raw Normal View History

2016-02-04 00:54:51 -08:00
package common
import (
"errors"
)
type String []byte
func ReadString(data []byte) (str String, remainder []byte, err error) {
if len(data) == 0 {
err = errors.New("no string in empty byte slice")
return
}
length := Integer([]byte{data[0]})
data = data[1:]
if len(data) < length {
2016-02-04 01:02:47 -08:00
str = data
2016-02-04 00:54:51 -08:00
err = errors.New("string longer than provided slice")
return
}
str = data[:length]
remainder = data[length:]
return
}