github.com/linapex/ethereum-go-chinese@v0.0.0-20190316121929-f8b7a73c3fa1/swarm/storage/feed/binaryserializer.go (about) 1 2 //<developer> 3 // <name>linapex 曹一峰</name> 4 // <email>linapex@163.com</email> 5 // <wx>superexc</wx> 6 // <qqgroup>128148617</qqgroup> 7 // <url>https://jsq.ink</url> 8 // <role>pku engineer</role> 9 // <date>2019-03-16 19:16:44</date> 10 //</624450118602461184> 11 12 13 package feed 14 15 import "github.com/ethereum/go-ethereum/common/hexutil" 16 17 type binarySerializer interface { 18 binaryPut(serializedData []byte) error 19 binaryLength() int 20 binaryGet(serializedData []byte) error 21 } 22 23 //值接口表示字符串键值存储 24 //用于生成查询字符串 25 type Values interface { 26 Get(key string) string 27 Set(key, value string) 28 } 29 30 type valueSerializer interface { 31 FromValues(values Values) error 32 AppendValues(values Values) 33 } 34 35 //十六进制序列化结构并将其转换为十六进制字符串 36 func Hex(bin binarySerializer) string { 37 b := make([]byte, bin.binaryLength()) 38 bin.binaryPut(b) 39 return hexutil.Encode(b) 40 } 41