todo_lib 7.2.3

Collection of utilities for todo.txt format
Documentation
2024-08-24 - version 7.2.2
[*] Update dependencies. Switch to 'thiserror' v2 from v1. Clippy fixes.

2024-08-24 - version 7.2.1
[*] Remove certain tags from a new task that is cloned from a completed
    recurrent one. At this moment, the list of removed tags is short:
	"tmr:" and "spent:".

2024-07-16 - version 7.2.0
[*] Add new API to complete tasks. The new API allows setting completion date
	regardless of creation date presence. The new is `done_with_config`. The
	old API `done` is still available but marked deprecated.

2024-02-14 - version 7.1.0
[*] Introduce new recurrency range: business days. Use 'b' to define the
    number of days in the 'rec' tag. Example: 'rec:7b'.
	At this moment, it skips only Saturdays and Sundays when calculating
	the next day.

2023-08-31 - version 7.0.1
[*] It was not possible to use custom CompletionMode when call `done` and
    `undone` in todo.rs

2023-08-30 - version 7.0.0
[!] Improve compatibility with todotxt rules:
	Now task `complete` and `uncomplete` require an extra argument `CompletionMode`.
	todo_lib::Conf got new field for the completion mode: `completion_mode`.
	Details: https://github.com/todotxt/todo.txt#complete-tasks-2-format-rules

2023-08-21 - version 6.1.3
[*] Fix filtering any date field by a range when one end of the range is
    'none'. The bug resulted in that, e.g., '--due none' and
	'--due today..none' displayed the same output which included only tasks
	that do not have due date set

2023-05-07 - version 6.1.2
[+] Remove a few debug println calls

2023-01-31 - version 6.1.1
[+] Fix building using 32-bit compilers

2023-01-29 - version 6.1.0
[+] Empty todos are skipped by default. To show them, use `--all` flag

2022-12-21 - version 6.0.0
[+] Add API to edit any tag in the subject. Standard tags are ignored
    by the new API, use the existing specific functions to change due
	date, threshold, and recurrence
[+] Add API for hashtags: add, remove, edit, filter

2022-08-30 - version 5.1.1
[*] Set creation date to today for new todo created for a recurrent task if
    the original todo has creation date
[*] TodoStatus::All did not show todos with threshold later than today's date

2022-07-24 - version 5.1.0
[*] Fix updating recurrence for a normal todo item

2022-06-12 - version 5.0.0
[*] Replace 'failure' crate with 'thiserror' one
[*] Clippy fixes

2021-10-17 - version 4.0.0
[+] Threshold date also move forward like due dates when a todo is done
[*] Instead of modifying an existing todo with recurrence, "done" marks the
    current todo completed and creates a new unfinished one with changed
	due and threshold dates.
	If a todo contains only recurrence but no due and threshold dates, the
	todo is marked comleted and no new todo is created.

2021-10-14 - version 3.0.2
[*] When passing list of task IDs, the first task was always ignored

2021-10-13 - version 3.0.1
[*] Fix regression: filter "due=none..4d" did not show tasks with empty due
    dates
2021-09-30 - version 3.0.0
[+] Implement exclude filter for projects, contexts, and tags
    Breaking change: filter struct changed

2021-09-25 - version 2.1.1
[*] Ranges with "none" are inclusive now - as it was stated in docs.
2021-09-25 - version 2.1.0
[+] Threshold in filter is range [..today] by default. It makes all tasks with
    threshold after today hidden.
2021-02-02 - version 2.0.0
[!] The todotxt low-level library is replaced with a new one
[*] Names of projects and contexts are case-sensitive now
[+] Tag order in todo's subject is preserved
[*] Completing todos with recurrence and threshold date does not change
    threshold date
[+] Todo completion now follows strict flag of todo's recurrence. Depending on
    the flag, the next due date is either calculated from previous due date or
	from the current date
[*] Every tag must have a non-empty value. Changing tag's value to an empty
    string removes the tag.
[*] if a todo is incomplete and has two dates in the beginning, only the first
    date is parsed as a creation date. The second date becomes part of a subject

2020-12-27 - version 1.0.0
[+] New option to filter by 'tag'

2020-12-25 - version 0.5.2
[*] Make filter rules for threshold the same as for other date fields

2020-08-08 - version 0.5.1
[+] Support for 'none' in ranges: if one end of a range is 'none', the range
    becomes an open range that combines two lists: todo with empty data and
	todos that are in the open range.
	Example: `--due=none..tomorrow` shows all todos that are overdue, due
	today and tomorrow, and that does not have due date.

2020-07-25 - version 0.5.0
Breaking changes:
[+] Struct `tfilter::Due` is renamed to `tfilter::DateRange` as now todo_lib
    supports filtering not only by due date, but by creation and finish dates
[*] Filter for due date did not support `Greater` condition
[+] Todos can be filtered by their creation and finish dates

2020-07-23 - version 0.4.0
[*] When a recurrent todo is done, its new due date is always set in the
    future. If the todo has a treshold, it is corrected accordingly

2019-01-19 - version 0.3.2
[*] Allow to use '=' when setting sort order: '-s=pri' works the same as
    '-s pri' and '--sort=pri'

2019-01-19 - version 0.3.0
[+] Timer support: start, stop timer for a todo, and related functions
[*] Marking a todo completed stops todo's timer if it is active

2019-01-04 - version 0.2.3
[+] New range for ID selection: List = list of IDs

2019-01-04 - version 0.2.2
[+] New option in config: `creation_date_auto` - automatically adds creation
    date to a new todo if it does not have it in its subject
[+] New command line argument `--done` to load archived todos

2018-12-29 - version 0.2.0
[!] First release