summaryrefslogtreecommitdiff
path: root/upb/handlers.c
diff options
context:
space:
mode:
authorBo Yang <teboring@google.com>2017-09-19 14:23:36 -0700
committerBo Yang <teboring@google.com>2017-09-19 14:23:36 -0700
commit0b7904e18cad70e17a2dbed5f1362ccdc62fd385 (patch)
treee94665631c7437d1bebb62b9a45f0c1be1f21d81 /upb/handlers.c
parentae30b4a816a57a8101ce187245edc3050d515c06 (diff)
Reserve unknown fields in upb
1. For decoding, an unknownfields will be lazily created on message, which contains bytes of unknown fields. 2. For encoding, if the unknownfields is present on message, all bytes contained in it will be serialized.
Diffstat (limited to 'upb/handlers.c')
-rw-r--r--upb/handlers.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/upb/handlers.c b/upb/handlers.c
index 09f9199..b9dc8f3 100644
--- a/upb/handlers.c
+++ b/upb/handlers.c
@@ -372,6 +372,19 @@ SETTER(endseq, upb_endfield_handlerfunc*, UPB_HANDLER_ENDSEQ)
#undef SETTER
+bool upb_handlers_setaddunknown(upb_handlers *h,
+ upb_addunknown_handlerfunc *func,
+ upb_handlerattr *attr) {
+ return doset(h, UPB_UNKNOWN_SELECTOR, NULL, UPB_HANDLER_INT32,
+ (upb_func *)func, attr);
+}
+
+bool upb_handlers_setunknown(upb_handlers *h, upb_unknown_handlerfunc *func,
+ upb_handlerattr *attr) {
+ return doset(h, UPB_UNKNOWN_SELECTOR, NULL, UPB_HANDLER_INT32,
+ (upb_func *)func, attr);
+}
+
bool upb_handlers_setstartmsg(upb_handlers *h, upb_startmsg_handlerfunc *func,
upb_handlerattr *attr) {
return doset(h, UPB_STARTMSG_SELECTOR, NULL, UPB_HANDLER_INT32,
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback