Comments (5)
Just realised this is only the case where the field has other attributes and hence options
is not None
from prost.
I don't understand what your request is. Can you describe your observed behavior and your expected behavior? An example file or project will help with reproducing your problem.
from prost.
We're hitting the same bug. Consider a field like this:
repeated uint64 user_ids = 2 [
(buf.validate.field).repeated.min_items = 1,
(buf.validate.field).repeated.max_items = 25
];
This generates the following from prost:
#[prost(uint64, repeated, packed="false", tag="2")]
pub user_ids: ::prost::alloc::vec::Vec<u64>,
However if I remove the options, like this:
repeated uint64 user_ids = 2;
Then the generated code looks like this:
#[prost(uint64, repeated, tag="2")]
pub user_ids: ::prost::alloc::vec::Vec<u64>,
As @daniel-sherwood correctly identified, this is a bug at
prost/prost-build/src/code_generator.rs
Lines 431 to 438 in 63c0024
In my first example, there are options on the field so map_or
does not use its default and the code falls back to options.packed()
. options.packed()
appears to be either true or false, with a default of false. But it should default to true if the file is in proto3 syntax.
from prost.
Thanks, now I understand your problem better. Are you willing to open a PR to fix this?
from prost.
Maybe! It'd be my first time trying Rust, so it'd probably take a while.
from prost.
Related Issues (20)
- Consistent JSON serialisation HOT 1
- include_file does not work if any of the modules does not declare a package HOT 1
- Module generated for 'oneof' field conflicts with module generated for package
- cargo bench --workspace fails
- Update heck to v0.5? HOT 1
- Sundry refactoring in code generator (ground work for builders) HOT 1
- Consider placing `Config::format` behind a feature flag.
- getter/setter generated for optional enum fields should use Option HOT 4
- Add support for editions HOT 2
- Nightly Compiler generates Clippy warnings for non-local `impl` definition HOT 3
- `impl ::prost::Message` for a struct shadows the user-defined type HOT 3
- Remove duplicated README HOT 1
- Release scripts are broken
- `protoc_from_env` and `protoc_include_from_env` are not exposed in 0.12.5
- Support for adding derive annotations for traits outside prost? HOT 2
- prost-build: Allow path globbing for type and field attributes HOT 1
- .
- Rename prost-derive feature to derive HOT 1
- Implement Ord & PartialOrd for prost_types::Timestamp
- Use of "Self" in stripped enum variants HOT 2
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 prost.