55 lines
940 B
Go
55 lines
940 B
Go
package remote
|
|
|
|
import (
|
|
"bytes"
|
|
"encoding/gob"
|
|
)
|
|
|
|
type loadTasksResponse struct {
|
|
Tasks []Task `json:"list"`
|
|
}
|
|
|
|
type Task struct {
|
|
ID string `json:"id"`
|
|
Title string `json:"title"`
|
|
Complete int `json:"compl"`
|
|
}
|
|
|
|
type Tasks []Task
|
|
|
|
func (t *Task) Encode() ([]byte, error) {
|
|
buf := bytes.NewBuffer(nil)
|
|
enc := gob.NewEncoder(buf)
|
|
err := enc.Encode(*t)
|
|
return buf.Bytes(), err
|
|
}
|
|
|
|
func (t *Task) Decode(b []byte) error {
|
|
buf := bytes.NewBuffer(b)
|
|
enc := gob.NewDecoder(buf)
|
|
err := enc.Decode(t)
|
|
return err
|
|
}
|
|
|
|
func (ts *Tasks) Encode() ([]byte, error) {
|
|
buf := bytes.NewBuffer(nil)
|
|
enc := gob.NewEncoder(buf)
|
|
err := enc.Encode(*ts)
|
|
return buf.Bytes(), err
|
|
}
|
|
|
|
func (ts *Tasks) Decode(b []byte) error {
|
|
buf := bytes.NewBuffer(b)
|
|
enc := gob.NewDecoder(buf)
|
|
err := enc.Decode(ts)
|
|
return err
|
|
}
|
|
|
|
func (ts Tasks) Length() int {
|
|
return len(ts.TaskArray())
|
|
}
|
|
|
|
func (ts Tasks) TaskArray() []Task {
|
|
return []Task(ts)
|
|
}
|