Comments (5)
I'm currently using a work around since I realized that if I simply define {module_name_suffix, ""}
before epb_compatibility
it will use that value instead of "_pb"
:)
from gpb.
(Yes, was going to suggest that workaround as a short-term solution :) )
Hm. I was assuming the Erlang protobuffs always suffixed with _pb
, so it'd be a natural thing for an epb_compatibility
option to do, maybe even an expected thing of such an option.
Perhaps a sensible way forward would be to add (yet) an option epb_api
or epb_functions
for the functions, and let the epb_compatibility
imply this and the other options outlined in #63. That way, you could specify epb_api
(or epb_functions
whichever is chosen) instead of epb_compatibility
.
You mentioned earlier that you were a mix of erlang_protobuffs and custom code. Is this lacking of _pb
suffix part of the custom code? Or am I wrong in my assumption that _pb
is always added? (if yes to the latter, then scrap the option idea above)
from gpb.
I've got some code locally in which generation of functions encode/1
and decode/2
is now controlled by an epb_functions
instead, which you could use. (And the epb_compatibility
option expands to epb_functions
plus a few more options)
But I'll wait a bit before pushing that, to hear your story, because I'm still confused about erlang_protobuffs and yet no _pb
suffix, because maybe it means some other solution is better.
from gpb.
Hm, you seem to be right. We weren't actually using epb as a dep but the modules from it for generating the encode/decode functionality and writing it to a file of our own.
So it is only our use case that made this funky :). I'm fine with the workaround hack and we can close this.
from gpb.
Ok. I'll close this, but I'll probably push the epb_functions
option in a while anyway, maybe waiting a bit first to see if any more changes pile up. Your workaround will continue to work the same way even with that, I figure.
(I also learned something about option design: if an option is a meta-option that expands to other options, then it should only expand to other options, and not have any extra meaning of its own; such extra meaning should be broken out to separate options instead)
from gpb.
Related Issues (20)
- There are many deficiencies HOT 6
- Hitting `no case clause matching: :group_end` in Elixir app using Exprotobuf/gpb HOT 8
- Add preprocessor check around no_underspec? HOT 3
- Optional added back to proto3 HOT 3
- Outdated example HOT 3
- Unset `google.protobuf.StringValue` map values are decoded as empty strings instead of empty values HOT 3
- proposal for performance improvements HOT 9
- Performance improvement for encoding protos with unchanged data HOT 7
- -spec for enum generated code is incorrect HOT 3
- For gpb 5: Drop support for Erlang versions before 19
- How can i call gpb from my rebar.config? HOT 2
- [enhancement] support for gpb text format HOT 1
- I think the generated file is too big HOT 7
- -mapfields-as-maps and -json possible incompability HOT 2
- Trying to ecode a float into a uint64 field results in a badarith exception instead of gpb_type_error HOT 2
- Enums are not defined as macros HOT 7
- Fix for warning on float 0.0 HOT 5
- to_json encodes `uint64` as an integer instead of a string HOT 1
- Add a @generated tag HOT 1
- Excessive File Size in Generated Protobuf Files HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from gpb.