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