diff options
author | isotes <isotes@gmail.com> | 2016-02-19 23:51:00 +0100 |
---|---|---|
committer | isotes <isotes@gmail.com> | 2016-02-19 23:51:00 +0100 |
commit | df3642b832dec73cf00e6a353ad134d3b132f4b1 (patch) | |
tree | 31d69527ab93a095d7b29b47ba14609db75cd61f /generator | |
parent | 4110ff293571767b4de0044d88da8f2e704d764e (diff) |
Generate MIN/MAX/ARRAYSIZE for enums
This generates #defines mirroring the following values from the generated C++ code of GPB
* const Foo Foo_MIN: the smallest valid value of the enum (VALUE_A in the example).
* const Foo Foo_MAX: the largest valid value of the enum (VALUE_C in the example).
* const Foo Foo_ARRAYSIZE: always defined as Foo_MAX + 1.
Diffstat (limited to 'generator')
-rwxr-xr-x | generator/nanopb_generator.py | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/generator/nanopb_generator.py b/generator/nanopb_generator.py index bc9e9da8..0e9b018b 100755 --- a/generator/nanopb_generator.py +++ b/generator/nanopb_generator.py @@ -197,6 +197,10 @@ class Enum: result += ' %s;' % self.names + result += '\n#define _%s_MIN %s' % (self.names, self.values[0][0]) + result += '\n#define _%s_MAX %s' % (self.names, self.values[-1][0]) + result += '\n#define _%s_ARRAYSIZE ((%s)(%s+1))' % (self.names, self.names, self.values[-1][0]) + if not self.options.long_names: # Define the long names always so that enum value references # from other files work properly. |