github.com/sandwich-go/boost@v1.3.29/xencoding/README.md (about)

     1  # encoding2
     2  
     3  编码解码器
     4  
     5  - 提供压缩/解压缩编码解码方式
     6  - 提供加密/解密编码解码方式
     7  - 提供 `json` 编码解码方式
     8  - 提供 `pbjson` 编码解码方式
     9  - 提供 `protobuf` 编码解码方式
    10  - 提供 `msgpack` 编码解码方式
    11  
    12  
    13  # 例子
    14  
    15  ```go
    16  ctx, cancel := context.WithCancel(context.Background())
    17  defer cancel()
    18  
    19  frame := []byte("time.Duration,[]time.Duration,map[string]*Redis此类的非基础类型的slice或者map都需要辅助指明类型")
    20  
    21  for _, n := Codecs() {
    22      codec := GetCodec(nn)
    23      bs, err := codec.Marshal(context.Background(), frame)
    24      xpanic.WhenError(err)
    25      var raw []byte
    26      err = codec.Unmarshal(context.Background(), bs, &raw)
    27      xpanic.WhenError(err)
    28      fmt.Println(string(raw))
    29  }
    30  
    31  ctx = WithContext(ctx, GetCodec(encrypt.AESCodecName))
    32  _, err0 := FromContext(ctx).Marshal(context.Background(), frame)
    33  xpanic.WhenError(err0)
    34  
    35  var raw1 []byte
    36  err0 = FromContext(ctx).Unmarshal(context.Background(), bs, &raw1)
    37  xpanic.WhenError(err0)
    38  fmt.Println(string(raw1))
    39  ```