diff --git a/todo.go b/todo.go new file mode 100644 index 0000000..5b8b379 --- /dev/null +++ b/todo.go @@ -0,0 +1,43 @@ +package main + +import ( + "errors" + "fmt" +) + +type Todo struct { + Title string + Content string +} + +type Todos struct { + Items []Todo +} + +func (todo *Todos) AddTodo(newTodo Todo) { + todo.Items = append(todo.Items, newTodo) +} + +func (todo *Todos) RemoveTodo(index int) (err error) { + //remove todo via index + if len(todo.Items) == 0 { + return errors.New("[ERR] Todo list is empty!\n") + } + + if index > len(todo.Items) { + return errors.New("[ERR] Index out of bounds") + } + + todo.Items = append(todo.Items[:index], todo.Items[index+1:]...) + return nil +} + +func (todo *Todos) ListTodo() int { + if len(todo.Items) == 0 { + return 0 + } + for k, v := range todo.Items { + fmt.Printf("%d:%s\n", k, v) + } + return 1 +}