57 lines
1.0 KiB
Go
57 lines
1.0 KiB
Go
package mytinytodo
|
|
|
|
import (
|
|
"bytes"
|
|
"encoding/gob"
|
|
"local/mytinytodo2/mytinytodo/remote"
|
|
)
|
|
|
|
type StringArray []string
|
|
|
|
func NewStringArray(s ...string) *StringArray {
|
|
arr := s[:]
|
|
var sa StringArray = arr
|
|
return &sa
|
|
}
|
|
|
|
func (sa *StringArray) StringArray() []string {
|
|
return []string(*sa)
|
|
}
|
|
|
|
func (sa *StringArray) Encode() ([]byte, error) {
|
|
buf := bytes.NewBuffer(nil)
|
|
enc := gob.NewEncoder(buf)
|
|
err := enc.Encode(sa.StringArray())
|
|
return buf.Bytes(), err
|
|
}
|
|
|
|
func (sa *StringArray) Decode(b []byte) error {
|
|
buf := bytes.NewBuffer(b)
|
|
enc := gob.NewDecoder(buf)
|
|
var s []string
|
|
err := enc.Decode(&s)
|
|
*sa = StringArray(s)
|
|
return err
|
|
}
|
|
|
|
type QueuedOp struct {
|
|
Op remote.Op
|
|
List remote.List
|
|
Task remote.Task
|
|
TaskTags []string
|
|
}
|
|
|
|
func (qop *QueuedOp) Encode() ([]byte, error) {
|
|
buf := bytes.NewBuffer(nil)
|
|
enc := gob.NewEncoder(buf)
|
|
err := enc.Encode(*qop)
|
|
return buf.Bytes(), err
|
|
}
|
|
|
|
func (qop *QueuedOp) Decode(b []byte) error {
|
|
buf := bytes.NewBuffer(b)
|
|
enc := gob.NewDecoder(buf)
|
|
err := enc.Decode(qop)
|
|
return err
|
|
}
|