summaryrefslogtreecommitdiff
path: root/src/upb.c
diff options
context:
space:
mode:
authorJoshua Haberman <joshua@reverberate.org>2009-08-27 11:10:13 -0700
committerJoshua Haberman <joshua@reverberate.org>2009-08-27 11:10:13 -0700
commitf17ed90f7704d77e3eb59a6f6b693ab4c598936a (patch)
tree48c0b69db3984577d77219eb861783b6bed16d24 /src/upb.c
parentb276aa78b6d04a35420ce699ae51771550b97d11 (diff)
Some cleanup and reformatting, fixed the benchmarks.
Diffstat (limited to 'src/upb.c')
-rw-r--r--src/upb.c37
1 files changed, 37 insertions, 0 deletions
diff --git a/src/upb.c b/src/upb.c
new file mode 100644
index 0000000..e82a8e4
--- /dev/null
+++ b/src/upb.c
@@ -0,0 +1,37 @@
+/*
+ * upb - a minimalist implementation of protocol buffers.
+ *
+ * Copyright (c) 2009 Joshua Haberman. See LICENSE for details.
+ *
+ */
+
+#include <stddef.h>
+
+#include "upb.h"
+
+#define alignof(t) offsetof(struct { char c; t x; }, x)
+#define TYPE_INFO(proto_type, wire_type, ctype) \
+ [GOOGLE_PROTOBUF_FIELDDESCRIPTORPROTO_TYPE_ ## proto_type] = \
+ {alignof(ctype), sizeof(ctype), wire_type, #ctype},
+
+struct upb_type_info upb_type_info[] = {
+ TYPE_INFO(DOUBLE, UPB_WIRE_TYPE_64BIT, double)
+ TYPE_INFO(FLOAT, UPB_WIRE_TYPE_32BIT, float)
+ TYPE_INFO(INT64, UPB_WIRE_TYPE_VARINT, int64_t)
+ TYPE_INFO(UINT64, UPB_WIRE_TYPE_VARINT, uint64_t)
+ TYPE_INFO(INT32, UPB_WIRE_TYPE_VARINT, int32_t)
+ TYPE_INFO(FIXED64, UPB_WIRE_TYPE_64BIT, uint64_t)
+ TYPE_INFO(FIXED32, UPB_WIRE_TYPE_32BIT, uint32_t)
+ TYPE_INFO(BOOL, UPB_WIRE_TYPE_VARINT, bool)
+ TYPE_INFO(MESSAGE, UPB_WIRE_TYPE_DELIMITED, void*)
+ TYPE_INFO(GROUP, UPB_WIRE_TYPE_START_GROUP, void*)
+ TYPE_INFO(UINT32, UPB_WIRE_TYPE_VARINT, uint32_t)
+ TYPE_INFO(ENUM, UPB_WIRE_TYPE_VARINT, uint32_t)
+ TYPE_INFO(SFIXED32, UPB_WIRE_TYPE_32BIT, int32_t)
+ TYPE_INFO(SFIXED64, UPB_WIRE_TYPE_64BIT, int64_t)
+ TYPE_INFO(SINT32, UPB_WIRE_TYPE_VARINT, int32_t)
+ TYPE_INFO(SINT64, UPB_WIRE_TYPE_VARINT, int64_t)
+ TYPE_INFO(STRING, UPB_WIRE_TYPE_DELIMITED, struct upb_string*)
+ TYPE_INFO(BYTES, UPB_WIRE_TYPE_DELIMITED, struct upb_string*)
+};
+
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback