summaryrefslogtreecommitdiffstats
path: root/generator/proto
diff options
context:
space:
mode:
authorPetteri Aimonen <jpa@git.mail.kapsi.fi>2015-01-04 11:36:42 +0200
committerPetteri Aimonen <jpa@git.mail.kapsi.fi>2015-01-04 12:02:15 +0200
commit50c67ecec4895f65ba684e4b46b4b70980a5be6a (patch)
tree650cea85ca6c544bc6c3026c670cea63057bf721 /generator/proto
parentb0d31468da7f644684be897cef5b0602ca10af0f (diff)
Add int_size option for generator.
This allows overriding the integer field types to e.g. uint8_t for saving RAM. Update issue 139 Status: FixedInGit
Diffstat (limited to 'generator/proto')
-rw-r--r--generator/proto/nanopb.proto12
1 files changed, 12 insertions, 0 deletions
diff --git a/generator/proto/nanopb.proto b/generator/proto/nanopb.proto
index 0716be4b..1bde5967 100644
--- a/generator/proto/nanopb.proto
+++ b/generator/proto/nanopb.proto
@@ -18,6 +18,14 @@ enum FieldType {
FT_IGNORE = 3; // Ignore the field completely.
}
+enum IntSize {
+ IS_DEFAULT = 0; // Default, 32/64bit based on type in .proto
+ IS_8 = 1;
+ IS_16 = 2;
+ IS_32 = 3;
+ IS_64 = 4;
+}
+
// This is the inner options message, which basically defines options for
// a field. When it is used in message or file scope, it applies to all
// fields.
@@ -28,6 +36,10 @@ message NanoPBOptions {
// Allocated number of entries in arrays ('repeated' fields)
optional int32 max_count = 2;
+ // Size of integer fields. Can save some memory if you don't need
+ // full 32 bits for the value.
+ optional IntSize int_size = 7 [default = IS_DEFAULT];
+
// Force type of field (callback or static allocation)
optional FieldType type = 3 [default = FT_DEFAULT];