/
githubmirror
/
xorm
Обзор
Документация
Войти
/
githubmirror
/
xorm
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
caches/encode.go
65 строк
1 KB
Lunny Xiao
Add README and fix some lints (#2079)
14 дек 2021, 04:00
14 дек 2021, 04:00
a2d3669
Код
Авторство
О чём код?
// Copyright 2020 The Xorm Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package caches import ( "bytes" "crypto/md5" "encoding/gob" "encoding/json" "fmt" "io" ) // Md5 return md5 hash string func Md5(str string) string { m := md5.New() _, _ = io.WriteString(m, str) return fmt.Sprintf("%x", m.Sum(nil)) } // Encode Encode data func Encode(data interface{}) ([]byte, error) { // return JsonEncode(data) return GobEncode(data) } // Decode decode data func Decode(data []byte, to interface{}) error { // return JsonDecode(data, to) return GobDecode(data, to) } // GobEncode encode data with gob func GobEncode(data interface{}) ([]byte, error) { var buf bytes.Buffer enc := gob.NewEncoder(&buf) err := enc.Encode(&data) if err != nil { return nil, err } return buf.Bytes(), nil } // GobDecode decode data with gob func GobDecode(data []byte, to interface{}) error { buf := bytes.NewBuffer(data) dec := gob.NewDecoder(buf) return dec.Decode(to) } // JsonEncode encode data with json func JsonEncode(data interface{}) ([]byte, error) { val, err := json.Marshal(data) if err != nil { return nil, err } return val, nil } // JsonDecode decode data with json func JsonDecode(data []byte, to interface{}) error { return json.Unmarshal(data, to) }