From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45072) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Yd2Tk-0003p2-5t for qemu-devel@nongnu.org; Tue, 31 Mar 2015 16:09:40 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Yd2Tf-0003aV-33 for qemu-devel@nongnu.org; Tue, 31 Mar 2015 16:09:40 -0400 Received: from mx1.redhat.com ([209.132.183.28]:45367) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Yd2Te-0003Zb-Rq for qemu-devel@nongnu.org; Tue, 31 Mar 2015 16:09:35 -0400 From: Markus Armbruster References: <1427227433-5030-1-git-send-email-eblake@redhat.com> <1427227433-5030-18-git-send-email-eblake@redhat.com> <20150331152359.GC4748@noname.redhat.com> Date: Tue, 31 Mar 2015 22:09:30 +0200 In-Reply-To: <20150331152359.GC4748@noname.redhat.com> (Kevin Wolf's message of "Tue, 31 Mar 2015 17:23:59 +0200") Message-ID: <87sicl2akl.fsf@blackfin.pond.sub.org> MIME-Version: 1.0 Content-Type: text/plain Subject: Re: [Qemu-devel] [PATCH v5 17/28] qapi: Allow true, false and null in schema json List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Kevin Wolf Cc: famz@redhat.com, lcapitulino@redhat.com, qemu-devel@nongnu.org, wenchaoqemu@gmail.com Kevin Wolf writes: > Am 24.03.2015 um 21:03 hat Eric Blake geschrieben: >> From: Fam Zheng >> >> In the near term, we will use it for a sensible-looking >> 'gen':false inside command declarations, instead of the >> current ugly 'gen':'no'. >> >> In the long term, it will allow conversion from shorthand >> with defaults mentioned only in side-band documentation: >> 'data':{'*flag':'bool', '*string':'str'} >> into an explicit default value documentation, as in: >> 'data':{'flag':{'type':'bool', 'optional':true, 'default':true}, >> 'string':{'type':'str', 'optional':true, 'default':null}} > > FWIW, I don't think that's a very friendly syntax for humans, it's a bit > verbose. But that's no reason not to allow true/false/null, of course. Here's my current thinking. Longhand: # mandatory 'name': { 'type': 'str' } # optional, with a default 'flag': { 'type': 'bool', 'default': true } # optional, no default 'string': { 'type': 'str', 'default': null } Presence of 'default' implies optional. Equivalent shorthand, if any: 'name': 'str' '*string': 'str' [...]