Files
libsyndie/lib/common/util.go
2016-09-18 13:58:33 -04:00

28 lines
689 B
Go

package common
import (
"bytes"
"encoding/base64"
)
// TODO: depend on go-i2p/common
const alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-~"
// I2PEncoding returns an I2P compatible base64 encoding based on a custom alphabet
var I2PEncoding *base64.Encoding = base64.NewEncoding(alphabet)
// newlineDelimiter returns data for a scanner delimited by \n\n
func NewlineDelimiter(data []byte, atEOF bool) (advance int, token []byte, err error) {
if atEOF && len(data) == 0 {
return 0, nil, nil
}
if i := bytes.Index(data, []byte{'\n', '\n'}); i >= 0 {
return i + 2, data[0:i], nil
}
if atEOF {
return len(data), data, nil
}
return 0, nil, nil
}