X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=devel%2Fschemata;h=41dc4a60fff36608e25425c7f113c6f2a1b667b0;hp=d1ab983a17bc33a42c9e772ac6a4820d0d561461;hb=60ac94fe58635f9c40724afa0f35965fc9ff1afc;hpb=102f58d7a4532aa5f7a21edfd24758be864ea8d4 diff --git a/devel/schemata b/devel/schemata index d1ab983a..41dc4a60 100644 --- a/devel/schemata +++ b/devel/schemata @@ -14,6 +14,18 @@ are interleaved. Keys are printed as keywords (symbols preceded by a colon), e.g. (:id "123" :time 54321 :from "foobar"). Null is printed as nil, true as t and false as nil. +This is version 2 of the structured output format. + +Version history +--------------- + +v1 +- First versioned schema release. +- Added part.content-length and part.content-transfer-encoding fields. + +v2 +- Added the thread_summary.query field. + Common non-terminals -------------------- @@ -75,7 +87,14 @@ part = { # A leaf part's body content is optional, but may be included if # it can be correctly encoded as a string. Consumers should use # this in preference to fetching the part content separately. - content?: string + content?: string, + # If a leaf part's body content is not included, the length of + # the encoded content (in bytes) may be given instead. + content-length?: int, + # If a leaf part's body content is not included, its transfer encoding + # may be given. Using this and the encoded content length, it is + # possible for the consumer to estimate the decoded content length. + content-transfer-encoding?: string } # The headers of a message or part (format_headers_sprinter with reply = FALSE) @@ -113,21 +132,21 @@ notmuch search schema --------------------- # --output=summary -summary = [thread*] +search_summary = [thread_summary*] # --output=threads -threads = [threadid*] +search_threads = [threadid*] # --output=messages -messages = [messageid*] +search_messages = [messageid*] # --output=files -files = [string*] +search_files = [string*] # --output=tags -tags = [string*] +search_tags = [string*] -thread = { +thread_summary = { thread: threadid, timestamp: unix_time, date_relative: string, # user-friendly timestamp @@ -136,7 +155,15 @@ thread = { authors: string, # comma-separated names with | between # matched and unmatched subject: string, - tags: [string*] + tags: [string*], + + # Two stable query strings identifying exactly the matched and + # unmatched messages currently in this thread. The messages + # matched by these queries will not change even if more messages + # arrive in the thread. If there are no matched or unmatched + # messages, the corresponding query will be null (there is no + # query that matches nothing). (Added in schema version 2.) + query: [string|null, string|null], } notmuch reply schema