package engine import "fmt" // Annotate appends a timestamped annotation to the task and saves. func (t *Task) Annotate(text string) error { annotation := Annotation{ Timestamp: timeNow().Unix(), Text: text, } t.Annotations = append(t.Annotations, annotation) return t.Save() } // Denotate removes the most recent annotation from the task and saves. // Returns the removed annotation, or an error if there are none. func (t *Task) Denotate() (*Annotation, error) { if len(t.Annotations) == 0 { return nil, fmt.Errorf("task has no annotations") } removed := t.Annotations[len(t.Annotations)-1] t.Annotations = t.Annotations[:len(t.Annotations)-1] if err := t.Save(); err != nil { return nil, err } return &removed, nil }