MyTinyTodo2/mytinytodo/remote/list.go

54 lines
899 B
Go

package remote
import (
"bytes"
"encoding/gob"
)
type loadListsResponse struct {
Lists []List `json:"list"`
}
type List struct {
ID string `json:"id"`
Name string `json:"name"`
}
type Lists []List
func (l *List) Encode() ([]byte, error) {
buf := bytes.NewBuffer(nil)
enc := gob.NewEncoder(buf)
err := enc.Encode(*l)
return buf.Bytes(), err
}
func (l *List) Decode(b []byte) error {
buf := bytes.NewBuffer(b)
enc := gob.NewDecoder(buf)
err := enc.Decode(l)
return err
}
func (ls *Lists) Encode() ([]byte, error) {
buf := bytes.NewBuffer(nil)
enc := gob.NewEncoder(buf)
err := enc.Encode(*ls)
return buf.Bytes(), err
}
func (ls *Lists) Decode(b []byte) error {
buf := bytes.NewBuffer(b)
enc := gob.NewDecoder(buf)
err := enc.Decode(ls)
return err
}
func (ls Lists) Length() int {
return len(ls.ListArray())
}
func (ls Lists) ListArray() []List {
return []List(ls)
}