api/msgpack-rpc: Parse type information from api/private/defs.h

Enhance msgpack-gen.lua to extract custom api type codes from the ObjectType
enum in api/private/defs.h. The type information is made available from the api
metadata and clients can use to correctly serialize/deserialize these types
using msgpack EXT type.
This commit is contained in:
Thiago de Arruda
2014-09-07 20:40:07 -03:00
parent d5a60d17fb
commit 2f566c83d9
3 changed files with 37 additions and 12 deletions

View File

@@ -49,32 +49,36 @@ typedef struct {
} Dictionary;
typedef enum {
// The following comments are markers that msgpack-gen.lua uses to extract
// types, don't remove!
// start custom types
kObjectTypePosition,
kObjectTypeBuffer,
kObjectTypeWindow,
kObjectTypeTabpage,
// end custom types
kObjectTypeNil,
kObjectTypeBoolean,
kObjectTypeInteger,
kObjectTypeFloat,
kObjectTypeString,
kObjectTypeBuffer,
kObjectTypeWindow,
kObjectTypeTabpage,
kObjectTypeArray,
kObjectTypeDictionary,
kObjectTypePosition,
} ObjectType;
struct object {
ObjectType type;
union {
Position position;
Buffer buffer;
Window window;
Tabpage tabpage;
Boolean boolean;
Integer integer;
Float floating;
String string;
Buffer buffer;
Window window;
Tabpage tabpage;
Array array;
Dictionary dictionary;
Position position;
} data;
};