Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
This Module exports the main datatype of this library: Task. It is provided with FromJSON and ToJSON instances.
Synopsis
- data Task = Task {
- status :: Status
- recurringChild :: Maybe RecurringChild
- uuid :: UUID
- id :: Maybe Integer
- entry :: UTCTime
- description :: Text
- start :: Maybe UTCTime
- modified :: Maybe UTCTime
- wait :: Maybe UTCTime
- due :: Maybe UTCTime
- until :: Maybe UTCTime
- annotations :: Set Annotation
- scheduled :: Maybe UTCTime
- project :: Maybe Text
- priority :: Maybe Priority
- depends :: Set UUID
- tags :: Set Tag
- urgency :: Double
- uda :: UDA
- type Tag = Text
- makeTask :: UUID -> UTCTime -> Text -> Task
Documentation
A Task
represents a task from taskwarrior.
The specification demands, that the existence of some fields is dependent on the status of the task.
Those fields are therefore bundled in Status
as a sum-type.
All fields in an imported task which are not part of the specification will be put in the UDA
(user defined attributes) 'Data.Map.Strict.Map Data.Text.Text'.
Since the json can have multiple semantically equivalent representations of a task first serializing and then deserializing is not identity. But deserializing and then serializing should be. (Thus making serializing and deserializing idempotent.)
Task | |
|
A Tag can be basically any string. But beware: Special symbols work but might clash with task
cli syntax. As an example you can use a space in a
. But then you cannot use Tag
task +my tag
on the command line.