[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 5/6] qapi: Add support for aliases
From: |
Eric Blake |
Subject: |
Re: [PATCH 5/6] qapi: Add support for aliases |
Date: |
Thu, 12 Nov 2020 12:34:19 -0600 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.4.0 |
On 11/12/20 11:28 AM, Kevin Wolf wrote:
> Introduce alias definitions for object types (structs and unions). This
> allows using the same QAPI type and visitor for many syntax variations
> that exist in the external representation, like between QMP and the
> command line. It also provides a new tool for evolving the schema while
> maintaining backwards compatibility during a deprecation period.
Cool! Obvious followup patch series: deprecate all QAPI members spelled
with _ by making them aliases of new members spelled with -, so that we
can finally have consistent spellings.
> +=== Aliases ===
> +
> +Object types, including structs and unions, can contain alias
> +definitions.
> +
> +Aliases define alternative member names that may be used in the
> +external representation to provide a value for a member in the same
> +object or in a nested object.
> +
> +Syntax:
> + ALIAS = { '*alias': STRING,
> + 'source': [ STRING, ... ] }
> +
> +'source' is a list of member names representing the path to an object
> +member, starting from the type where the alias definition is
> +specified. It may refer to another alias name. It is allowed to use
> +a path that doesn't necessarily match an existing member in every
> +variant or even at all; in this case, the alias remains unused.
> +
> +If 'alias' is present, then the single member referred to by 'source'
> +is made accessible with the name given in 'alias' in the type where
> +the alias definition is specified.
> +
> +If 'alias' is not present, then all members in the object referred to
> +by 'source' are made accessible in the type where the alias definition
> +is specified with the same name as they have in 'source'.
Is it worth an example of how to use this?
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3226
Virtualization: qemu.org | libvirt.org
- [PATCH 0/6] qapi: Add support for aliases, Kevin Wolf, 2020/11/12
- [PATCH 1/6] qapi: Add interfaces for alias support to Visitor, Kevin Wolf, 2020/11/12
- [PATCH 2/6] qapi: Remember alias definitions in qobject-input-visitor, Kevin Wolf, 2020/11/12
- [PATCH 4/6] qapi: Apply aliases in qobject-input-visitor, Kevin Wolf, 2020/11/12
- [PATCH 3/6] qapi: Simplify full_name_nth() in qobject-input-visitor, Kevin Wolf, 2020/11/12
- [PATCH 5/6] qapi: Add support for aliases, Kevin Wolf, 2020/11/12
- Re: [PATCH 5/6] qapi: Add support for aliases,
Eric Blake <=
[PATCH 6/6] tests/qapi-schema: Test cases for aliases, Kevin Wolf, 2020/11/12