On 11/04/2013 05:37 PM, Wenchao Xia wrote:
Now it is possible to inherit another struct inside data directly,
which saves trouble to define trivial structure.
Signed-off-by: Wenchao Xia <address@hidden>
---
docs/qapi-code-gen.txt | 21 +++++++++++++++++++++
scripts/qapi-visit.py | 14 ++++++++++----
2 files changed, 31 insertions(+), 4 deletions(-)
diff --git a/docs/qapi-code-gen.txt b/docs/qapi-code-gen.txt
index 0728f36..3e42ff4 100644
--- a/docs/qapi-code-gen.txt
+++ b/docs/qapi-code-gen.txt
@@ -70,6 +70,27 @@ both fields like this:
{ "file": "/some/place/my-image",
"backing": "/some/place/my-backing-file" }
+It is possible to directly inherit other struct by keyword '_base':
+
+ { 'type': 'NetworkConnectionInfo', 'data': { 'host': 'str', 'service': 'str'
} }
+ { 'type': 'VncConnectionInfo',
+ 'data': {
+ 'server': {
+ '_base': 'NetworkConnectionInfo',
Interesting idea for shorthand. However, I would suggest that you pick
a different character than '_', since '_' is valid in names. That is,
we already have special handling of leading '*' to mark a field as
optional, so I suggest something like '^' to mark a base class. By
using a non-name character, it becomes more obvious that the leading
character has a special meaning to the qapi generator.
I'm also not convinced yet that we want this shorthand; in particular,
I'm worried whether it will make the introspection patches harder to write.