MyTinyTodo2/mytinytodo/remote/task.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)
}