Comments (2)
Judah, have you given any thoughts about this feature?
from proto-lens.
I haven't really had a chance to consider it in detail. Here's a potential approach which is along the same lines as other language bindings:
First, define an analogue RawMessage
of google::protobuf::Message
, which essentially holds the raw tagged values in a Map
.
Now, suppose we have the following code in foo.proto
:
// File foo.proto
message Foo {
extensions 100 to 199;
}
We add a new field to Foo
with name _Foo__extensions
and type RawMessage
. (This approach would also essentially solve #29.)
Finally, suppose we have in bar.proto
:
extend Foo {
optional int32 bar = 123;
}
message Baz {
extend Foo {
optional Baz foo_ext = 124;
}
}
Then we define two new instances of Lens.Label.HasLens
: HasLens "bar" f Foo Foo Int32 Int32
, and HasLens "foo_ext" f Foo Foo Baz Baz
; where the implementation of each lens uses the RawMessage
that Foo
holds.
from proto-lens.
Related Issues (20)
- bootstrap.hs doesn't work with stack 2.3.1 (Cannot complete repo information for a non SHA1 commit due to non-reproducibility) HOT 5
- proto-lens-protobuf-types won't compile. HOT 3
- Generic runtime representation HOT 2
- QuickCheck and bytestring upper bounds are outdated
- Find a path forward for CI HOT 2
- Installing protoc doc
- Text format parser doesn't accept all valid boolean values
- Too strict bounds on profunctors on hackage HOT 2
- Release for Stackage LTS-18.0 HOT 5
- Support GHC 9
- `readMessage` from `TextFormat` chokes on unicode in strings
- Re-add blackgnezdo HOT 2
- Increment upper bounds for some dependencies HOT 2
- New Hackage release HOT 3
- Support lazy construction for byte fields HOT 2
- Not compatible with mtl-2.3 and transformers-0.6 HOT 3
- google/protobuf/struct.proto not included in protobuf types HOT 2
- Show instance not working for first/default enum values
- Show instance not working for first/default enum values
- Support GHC 9.4 HOT 10
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 proto-lens.