Comments (7)
You don't need to extend Observable you can use it as mixin
class SomeMessage extends GeneratedMessage with Observable {
...
}
The bigger problem is to know on what fields the annotations @observable
should be applied or should maps and lists also wrapped in toObservable([])
.
I think this should be defined in the proto files in some way for each property.
from protobuf.dart.
For all field is not an option?
All fields in my proto need to be observable. It would help if we can
support this globally. A command line switch would be perfect.
Thanks for your support.
Le 23 sept. 2014 09:10, "Günter Zöchbauer" [email protected] a
écrit :
You don't need to extend Observable you can use it as mixin
class SomeMessage extends GeneratedMessage with Observable {
...}
The bigger problem is to know on what fields the annotations @observable
should be applied or should maps and lists also wrapped in toObservable([]).
I think this should be defined in the proto files in some way for each
property.
—
Reply to this email directly or view it on GitHub
https://github.com/dart-lang/dart-protoc-plugin/issues/29#issuecomment-56483198
.
from protobuf.dart.
I didn't do much deep thinking about this topic yet but I'm sure it could be very useful in some projects and don't see a problem applying @observable
on all simple fields String
, int
, double
, bool
but I am not so sure about collections, references to other classes. Normally all features come with a cost. It would be interesting to hear other thoughts.
from protobuf.dart.
dart protobuffer messages store values in a map. There is no easy way to add @observable to simple fields. Access to such values are all wrapped in getters and setters.
Contrary to the Observable mixin ChangeNotifier doesn't use dirtyChecking.
As we wrap any modification in setField/clearField anyway I don't see any reason not to use ChangeNotifier.
I admit that I didn't think about Lists.
Are there any maps in protobuffers?
from protobuf.dart.
I've started working on observable messages and repeated fields. Related bug:
#43
from protobuf.dart.
In 0.4.2, you can subclass a GeneratedMessage to override the getter for eventPlugin and the new createRepeatedField() method to find out when fields change. This isn't a complete solution but it provides the hooks to write one.
from protobuf.dart.
This won't be implemented. We are currently working on removing the existing eventPlugin
API.
from protobuf.dart.
Related Issues (20)
- Unknown Fields HOT 12
- How do you generate via buf? HOT 2
- Error: Couldn't find constructor 'GrpcServiceName'. HOT 8
- Generate nullable types from WKT wrappers HOT 1
- Bad state: No element HOT 3
- GeneratedMessage constructors with `result` parameter conflict with `result` local var. HOT 1
- toProto3Json converts Int64 values to strings HOT 1
- Impossible to distinguish the `oneof` fields from non-`oneof` fields when creating/using a generated class instance. HOT 4
- How to access google.protobuf.FieldOptions extensions? HOT 1
- Prohibit ..deepCopy() call HOT 1
- Generated gRPC client method stubs get no comments or deprecation annotations HOT 1
- Incompatibility with Java-generated Serialized Protocol Buffer in Dart Protocol Buffers Library
- `protoc` does not generate built-in types HOT 1
- The `.values` field of a generated enum class contains the zero-valued unspecified value HOT 1
- Inconvenient to add an alternate name to each enum value using Enum Value Options
- [protoc_plugin] Error `The method '$_clearField' isn't defined for the class 'DartMixin'.` HOT 1
- [protoc_plugin] Plugin output is unparseable HOT 1
- Error: A value of type 'List<dynamic>' can't be returned from the function 'symbol' because it has a return type of 'PbList<ProtoOALightSymbol>'
- Error "The named parameter 'valueDefaultOrMaker' isn't defined." in version 21.1.2 (protoc 26.1) HOT 3
- Add iOS privacy manifest 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 protobuf.dart.