Skip to content

Commit

Permalink
qapi/schema: make c_type() and json_type() abstract methods
Browse files Browse the repository at this point in the history
These methods should always return a str, it's only the default abstract
implementation that doesn't. They can be marked "abstract", which
requires subclasses to override the method with the proper return type.

Signed-off-by: John Snow <jsnow@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Message-ID: <20240315152301.3621858-9-armbru@redhat.com>
  • Loading branch information
jnsnow authored and Markus Armbruster committed Apr 24, 2024
1 parent 578cd93 commit d150be3
Showing 1 changed file with 4 additions and 1 deletion.
5 changes: 4 additions & 1 deletion scripts/qapi/schema.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@

# TODO catching name collisions in generated code would be nice

from abc import ABC, abstractmethod
from collections import OrderedDict
import os
import re
Expand Down Expand Up @@ -245,9 +246,10 @@ def visit(self, visitor):
visitor.visit_include(self._sub_module.name, self.info)


class QAPISchemaType(QAPISchemaDefinition):
class QAPISchemaType(QAPISchemaDefinition, ABC):
# Return the C type for common use.
# For the types we commonly box, this is a pointer type.
@abstractmethod
def c_type(self):
pass

Expand All @@ -259,6 +261,7 @@ def c_param_type(self):
def c_unboxed_type(self):
return self.c_type()

@abstractmethod
def json_type(self):
pass

Expand Down

0 comments on commit d150be3

Please sign in to comment.