rss and rss item and encode
Former-commit-id: 333b5635cc0eb22964403cc78f660e02a830f077
This commit is contained in:
@@ -1,22 +0,0 @@
|
||||
package config
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"encoding/gob"
|
||||
)
|
||||
|
||||
type Encodable struct{}
|
||||
|
||||
func (e *Encodable) Encode() ([]byte, error) {
|
||||
buff := bytes.NewBuffer(nil)
|
||||
enc := gob.NewEncoder(buff)
|
||||
err := enc.Encode(e)
|
||||
return buff.Bytes(), err
|
||||
}
|
||||
|
||||
func (e *Encodable) Decode(b []byte) error {
|
||||
buff := bytes.NewBuffer(b)
|
||||
dec := gob.NewDecoder(buff)
|
||||
err := dec.Decode(e)
|
||||
return err
|
||||
}
|
||||
20
config/encode.go
Normal file
20
config/encode.go
Normal file
@@ -0,0 +1,20 @@
|
||||
package config
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"encoding/gob"
|
||||
)
|
||||
|
||||
func Encode(v interface{}) ([]byte, error) {
|
||||
buff := bytes.NewBuffer(nil)
|
||||
enc := gob.NewEncoder(buff)
|
||||
err := enc.Encode(v)
|
||||
return buff.Bytes(), err
|
||||
}
|
||||
|
||||
func Decode(b []byte, v interface{}) error {
|
||||
buff := bytes.NewBuffer(b)
|
||||
enc := gob.NewDecoder(buff)
|
||||
err := enc.Decode(v)
|
||||
return err
|
||||
}
|
||||
24
config/encode_test.go
Normal file
24
config/encode_test.go
Normal file
@@ -0,0 +1,24 @@
|
||||
package config
|
||||
|
||||
import (
|
||||
"testing"
|
||||
"time"
|
||||
)
|
||||
|
||||
func TestEncodeDecode(t *testing.T) {
|
||||
c := time.Now()
|
||||
d := c.Add(0)
|
||||
|
||||
b, err := Encode(c)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
if err := Decode(b, &c); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
if c.Sub(d) > time.Millisecond*5 {
|
||||
t.Fatalf("%v => %v", d, c)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user