[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v3 1/8] qapi: golang: Generate enum type
From: |
Daniel P . Berrangé |
Subject: |
Re: [PATCH v3 1/8] qapi: golang: Generate enum type |
Date: |
Fri, 17 Jan 2025 10:10:51 +0000 |
User-agent: |
Mutt/2.2.13 (2024-03-09) |
On Fri, Jan 10, 2025 at 11:49:39AM +0100, Victor Toso wrote:
> This patch handles QAPI enum types and generates its equivalent in Go.
> We sort the output based on enum's type name.
>
> Enums are being handled as strings in Golang.
>
> 1. For each QAPI enum, we will define a string type in Go to be the
> assigned type of this specific enum.
>
> 2. Naming: CamelCase will be used in any identifier that we want to
> export, which is everything.
>
> Example:
>
> qapi:
> | ##
> | # @DisplayProtocol:
> | #
> | # Display protocols which support changing password options.
> | #
> | # Since: 7.0
> | ##
> | { 'enum': 'DisplayProtocol',
> | 'data': [ 'vnc', 'spice' ] }
>
> go:
> | // Display protocols which support changing password options.
> | //
> | // Since: 7.0
> | type DisplayProtocol string
> |
> | const (
> | DisplayProtocolVnc DisplayProtocol = "vnc"
> | DisplayProtocolSpice DisplayProtocol = "spice"
> | )
>
> Signed-off-by: Victor Toso <victortoso@redhat.com>
> ---
> scripts/qapi/golang.py | 266 +++++++++++++++++++++++++++++++++++++++++
> scripts/qapi/main.py | 3 +
> 2 files changed, 269 insertions(+)
> create mode 100644 scripts/qapi/golang.py
>
> diff --git a/scripts/qapi/golang.py b/scripts/qapi/golang.py
> new file mode 100644
> index 0000000000..1e04c99f1c
> --- /dev/null
> +++ b/scripts/qapi/golang.py
> @@ -0,0 +1,266 @@
> +"""
> +Golang QAPI generator
> +"""
> +
> +# Copyright (c) 2025 Red Hat Inc.
> +#
> +# Authors:
> +# Victor Toso <victortoso@redhat.com>
> +#
> +# This work is licensed under the terms of the GNU GPL, version 2.
> +# See the COPYING file in the top-level directory.
Did you mean to say GPL-2.0-only ? Generally we'd expect
new code to be GPL-2.0-or-later.
Also we'd now desire "SPDX-License-Identifier: GPL-2.0-or-later"
for any newly added files, which reminds me to finish my patches
to checkpatch.pl to enforce SPDX usage.
With regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
- [PATCH v3 0/8] qapi-go: add generator for Golang interfaces, Victor Toso, 2025/01/10
- [PATCH v3 1/8] qapi: golang: Generate enum type, Victor Toso, 2025/01/10
- [PATCH v3 2/8] qapi: golang: Generate alternate types, Victor Toso, 2025/01/10
- [PATCH v3 3/8] qapi: golang: Generate struct types, Victor Toso, 2025/01/10
- [PATCH v3 4/8] qapi: golang: structs: Address nullable members, Victor Toso, 2025/01/10
- [PATCH v3 5/8] qapi: golang: Generate union type, Victor Toso, 2025/01/10
- [PATCH v3 6/8] qapi: golang: Generate event type, Victor Toso, 2025/01/10
- [PATCH v3 7/8] qapi: golang: Generate command type, Victor Toso, 2025/01/10
- [PATCH v3 8/8] docs: add notes on Golang code generator, Victor Toso, 2025/01/10
- Re: [PATCH v3 0/8] qapi-go: add generator for Golang interfaces, Markus Armbruster, 2025/01/13