Re: [PATCH 1/7] go: Use iota in enum bindings
authorAustin Clements <amdragon@MIT.EDU>
Wed, 18 Jul 2012 20:17:48 +0000 (16:17 +2000)
committerW. Trevor King <wking@tremily.us>
Fri, 7 Nov 2014 17:48:23 +0000 (09:48 -0800)
c3/bd6cd42999cb257d52e2b3a38adb2adbfa34b6 [new file with mode: 0644]

diff --git a/c3/bd6cd42999cb257d52e2b3a38adb2adbfa34b6 b/c3/bd6cd42999cb257d52e2b3a38adb2adbfa34b6
new file mode 100644 (file)
index 0000000..42b8f56
--- /dev/null
@@ -0,0 +1,123 @@
+Return-Path: <amdragon@mit.edu>\r
+X-Original-To: notmuch@notmuchmail.org\r
+Delivered-To: notmuch@notmuchmail.org\r
+Received: from localhost (localhost [127.0.0.1])\r
+       by olra.theworths.org (Postfix) with ESMTP id 620A1431FC0\r
+       for <notmuch@notmuchmail.org>; Wed, 18 Jul 2012 13:17:53 -0700 (PDT)\r
+X-Virus-Scanned: Debian amavisd-new at olra.theworths.org\r
+X-Spam-Flag: NO\r
+X-Spam-Score: -0.7\r
+X-Spam-Level: \r
+X-Spam-Status: No, score=-0.7 tagged_above=-999 required=5\r
+       tests=[RCVD_IN_DNSWL_LOW=-0.7] autolearn=disabled\r
+Received: from olra.theworths.org ([127.0.0.1])\r
+       by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024)\r
+       with ESMTP id Y6Exg21L3DP9 for <notmuch@notmuchmail.org>;\r
+       Wed, 18 Jul 2012 13:17:53 -0700 (PDT)\r
+Received: from dmz-mailsec-scanner-8.mit.edu (DMZ-MAILSEC-SCANNER-8.MIT.EDU\r
+       [18.7.68.37])\r
+       by olra.theworths.org (Postfix) with ESMTP id B4C8F431FAE\r
+       for <notmuch@notmuchmail.org>; Wed, 18 Jul 2012 13:17:52 -0700 (PDT)\r
+X-AuditID: 12074425-b7f9b6d0000008c4-77-500719ef5ce6\r
+Received: from mailhub-auth-3.mit.edu ( [18.9.21.43])\r
+       by dmz-mailsec-scanner-8.mit.edu (Symantec Messaging Gateway) with SMTP\r
+       id E7.55.02244.FE917005; Wed, 18 Jul 2012 16:17:52 -0400 (EDT)\r
+Received: from outgoing.mit.edu (OUTGOING-AUTH.MIT.EDU [18.7.22.103])\r
+       by mailhub-auth-3.mit.edu (8.13.8/8.9.2) with ESMTP id q6IKHoQc019065; \r
+       Wed, 18 Jul 2012 16:17:51 -0400\r
+Received: from awakening.csail.mit.edu (awakening.csail.mit.edu [18.26.4.91])\r
+       (authenticated bits=0)\r
+       (User authenticated as amdragon@ATHENA.MIT.EDU)\r
+       by outgoing.mit.edu (8.13.6/8.12.4) with ESMTP id q6IKHmOe022111\r
+       (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=NOT);\r
+       Wed, 18 Jul 2012 16:17:50 -0400 (EDT)\r
+Received: from amthrax by awakening.csail.mit.edu with local (Exim 4.77)\r
+       (envelope-from <amdragon@mit.edu>)\r
+       id 1Sragu-00019T-5r; Wed, 18 Jul 2012 16:17:48 -0400\r
+Date: Wed, 18 Jul 2012 16:17:48 -0400\r
+From: Austin Clements <amdragon@MIT.EDU>\r
+To: Adrien Bustany <adrien@bustany.org>\r
+Subject: Re: [PATCH 1/7] go: Use iota in enum bindings\r
+Message-ID: <20120718201748.GS31670@mit.edu>\r
+References: <1342636475-16057-1-git-send-email-adrien@bustany.org>\r
+       <1342636475-16057-2-git-send-email-adrien@bustany.org>\r
+MIME-Version: 1.0\r
+Content-Type: text/plain; charset=us-ascii\r
+Content-Disposition: inline\r
+In-Reply-To: <1342636475-16057-2-git-send-email-adrien@bustany.org>\r
+User-Agent: Mutt/1.5.21 (2010-09-15)\r
+X-Brightmail-Tracker:\r
+ H4sIAAAAAAAAA+NgFupjleLIzCtJLcpLzFFi42IR4hTV1v0gyR5gMP0bk8X6O2vZLK7fnMns\r
+       wOTx8cA9Jo9nq24xBzBFcdmkpOZklqUW6dslcGV8uHuJveAcT8Wv/c1MDYzdXF2MnBwSAiYS\r
+       11/uZYKwxSQu3FvP1sXIxSEksI9RYk/LFFaQhJDABkaJ3uYIiMRJJokp5/exQjhLGCUeNn4B\r
+       a2cRUJXY+OokmM0moCGxbf9yRhBbREBdYkdnO5jNLCAt8e13M1ANB4ewgJnE1+u1IGFeAR2J\r
+       v3c2Qy2rltj0dg0rRFxQ4uTMJywQrVoSN/69BGsFGbP8HwdImFPAWeLHzl3sILaogIrElJPb\r
+       2CYwCs1C0j0LSfcshO4FjMyrGGVTcqt0cxMzc4pTk3WLkxPz8lKLdC30cjNL9FJTSjcxgoKa\r
+       3UV1B+OEQ0qHGAU4GJV4eB/sYg0QYk0sK67MPcQoycGkJMr7SYg9QIgvKT+lMiOxOCO+qDQn\r
+       tfgQowQHs5II7wNBoBxvSmJlVWpRPkxKmoNFSZz3RspNfyGB9MSS1OzU1ILUIpisDAeHkgSv\r
+       NDB6hQSLUtNTK9Iyc0oQ0kwcnCDDeYCG84LU8BYXJOYWZ6ZD5E8x6nJce3jrFqMQS15+XqqU\r
+       OO8bCaAiAZCijNI8uDmwZPSKURzoLWFePpBRPMBEBjfpFdASJqAl3MVsIEtKEhFSUg2MRbM2\r
+       SsWwKXBbuDYefXaJ3/tU+ox5/ZuCg+40hBx/WvA++rgU2+W1t/s+vS4I/iFiN+E0810/0U83\r
+       r21L1j20KJPnftBbqycr1d5kBzZf3OZQq36j9tCcHzYVQp8dbmsx3eIt49l7apO0fqXZ43zL\r
+       06J7Hr2Wnx0fs6nt5W0xD/E+hmu3an+sU2Ipzkg01GIuKk4EAAaF7lEhAwAA\r
+Cc: notmuch@notmuchmail.org\r
+X-BeenThere: notmuch@notmuchmail.org\r
+X-Mailman-Version: 2.1.13\r
+Precedence: list\r
+List-Id: "Use and development of the notmuch mail system."\r
+       <notmuch.notmuchmail.org>\r
+List-Unsubscribe: <http://notmuchmail.org/mailman/options/notmuch>,\r
+       <mailto:notmuch-request@notmuchmail.org?subject=unsubscribe>\r
+List-Archive: <http://notmuchmail.org/pipermail/notmuch>\r
+List-Post: <mailto:notmuch@notmuchmail.org>\r
+List-Help: <mailto:notmuch-request@notmuchmail.org?subject=help>\r
+List-Subscribe: <http://notmuchmail.org/mailman/listinfo/notmuch>,\r
+       <mailto:notmuch-request@notmuchmail.org?subject=subscribe>\r
+X-List-Received-Date: Wed, 18 Jul 2012 20:17:53 -0000\r
+\r
+Hah.  I guess nobody has tried to modify a notmuch database using the\r
+Go bindings.\r
+\r
+Could this instead assign the constants to\r
+C.NOTMUCH_DATABASE_MODE_READ_ONLY, etc, rather than duplicating their\r
+values?  It would be nice to do that for the Status values as well\r
+(which are correctly using iota, at least).\r
+\r
+Quoth Adrien Bustany on Jul 18 at  9:34 pm:\r
+> Using iota is the correct way to get the values in the enum increment\r
+> automatically. The old code would just set all the enum values to 0.\r
+> ---\r
+>  bindings/go/src/notmuch/notmuch.go |    6 +++---\r
+>  1 files changed, 3 insertions(+), 3 deletions(-)\r
+> \r
+> diff --git a/bindings/go/src/notmuch/notmuch.go b/bindings/go/src/notmuch/notmuch.go\r
+> index 00bd53a..ecd7418 100644\r
+> --- a/bindings/go/src/notmuch/notmuch.go\r
+> +++ b/bindings/go/src/notmuch/notmuch.go\r
+> @@ -86,7 +86,7 @@ type Filenames struct {\r
+>  type DatabaseMode C.notmuch_database_mode_t\r
+>  \r
+>  const (\r
+> -    DATABASE_MODE_READ_ONLY DatabaseMode = 0\r
+> +    DATABASE_MODE_READ_ONLY DatabaseMode = iota\r
+>      DATABASE_MODE_READ_WRITE\r
+>  )\r
+>  \r
+> @@ -386,7 +386,7 @@ func (self *Database) CreateQuery(query string) *Query {\r
+>  type Sort C.notmuch_sort_t\r
+>  \r
+>  const (\r
+> -    SORT_OLDEST_FIRST Sort = 0\r
+> +    SORT_OLDEST_FIRST Sort = iota\r
+>      SORT_NEWEST_FIRST\r
+>      SORT_MESSAGE_ID\r
+>      SORT_UNSORTED\r
+> @@ -774,7 +774,7 @@ func (self *Message) GetFileName() string {\r
+>  type Flag C.notmuch_message_flag_t\r
+>  \r
+>  const (\r
+> -    MESSAGE_FLAG_MATCH Flag = 0\r
+> +    MESSAGE_FLAG_MATCH Flag = iota\r
+>  )\r
+>  \r
+>  /* Get a value of a flag for the email corresponding to 'message'. */\r