[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v3 1/8] qapi: golang: Generate enum type
From: |
Victor Toso |
Subject: |
Re: [PATCH v3 1/8] qapi: golang: Generate enum type |
Date: |
Fri, 17 Jan 2025 11:22:28 +0100 |
Hi,
On Fri, Jan 17, 2025 at 10:10:51AM +0000, Daniel P. Berrangé wrote:
> 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.
Right. I've copied from another scripts/qapi/*.py
I'll fix it.
> Also we'd now desire "SPDX-License-Identifier: GPL-2.0-or-later"
> for any newly added files,
I'll add it too.
> which reminds me to finish my patches to checkpatch.pl to
> enforce SPDX usage.
Cheers,
Victor
signature.asc
Description: PGP signature
- [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