diff options
author | Paul Yang <TeBoring@users.noreply.github.com> | 2018-08-24 16:10:07 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-08-24 16:10:07 -0700 |
commit | 38d674e86f4d5b368e37e20d31a44c2924de6998 (patch) | |
tree | 64d3333d0c39240bfb2a67fe6b8bef7c48753be9 /upb/def.h | |
parent | d1738d4dec31bc803b0db5c59cd5b40e929b01c0 (diff) |
Fix json parsing for timestamp (#115)
* Fix json parsing for timestamp
* Fix json encoding for timestamp
* Implement timestamp_machine to parse timestamp
* Remove comparision for size_t and 0
* Increase defined printer size
* Increase size
* Increase parser size
* Mark json_en_timestamp_machine unused
Diffstat (limited to 'upb/def.h')
-rw-r--r-- | upb/def.h | 11 |
1 files changed, 11 insertions, 0 deletions
@@ -663,6 +663,10 @@ typedef upb_strtable_iter upb_msg_oneof_iter; #define UPB_MAPENTRY_KEY 1 #define UPB_MAPENTRY_VALUE 2 +/* Well-known field tag numbers for timestamp messages. */ +#define UPB_TIMESTAMP_SECONDS 1 +#define UPB_TIMESTAMP_NANOS 2 + #ifdef __cplusplus /* Structure that describes a single .proto message type. @@ -777,6 +781,9 @@ class upb::MessageDef { void setmapentry(bool map_entry); bool mapentry() const; + /* Is this message a timestamp? */ + bool timestamp() const; + /* Iteration over fields. The order is undefined. */ class field_iterator : public std::iterator<std::forward_iterator_tag, FieldDef*> { @@ -918,6 +925,7 @@ bool upb_msgdef_addoneof(upb_msgdef *m, upb_oneofdef *o, const void *ref_donor, bool upb_msgdef_setfullname(upb_msgdef *m, const char *fullname, upb_status *s); void upb_msgdef_setmapentry(upb_msgdef *m, bool map_entry); bool upb_msgdef_mapentry(const upb_msgdef *m); +bool upb_msgdef_timestamp(const upb_msgdef *m); bool upb_msgdef_setsyntax(upb_msgdef *m, upb_syntax_t syntax); /* Field lookup in a couple of different variations: @@ -1857,6 +1865,9 @@ inline void MessageDef::setmapentry(bool map_entry) { inline bool MessageDef::mapentry() const { return upb_msgdef_mapentry(this); } +inline bool MessageDef::timestamp() const { + return upb_msgdef_timestamp(this); +} inline MessageDef::field_iterator MessageDef::field_begin() { return field_iterator(this); } |