rss and rss item and encode

Former-commit-id: 333b5635cc0eb22964403cc78f660e02a830f077
This commit is contained in:
bel
2019-06-22 10:07:52 -06:00
parent be065c5dcb
commit fc94f94bd2
10 changed files with 353 additions and 52 deletions

View File

@@ -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
View 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
View 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)
}
}