Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- module flow.data.base;
- import std.signals;
- import std.uuid;
- import flow.type.base;
- mixin template DataProperty(T, string name)
- {
- mixin("T " ~ name ~ ";");
- mixin("void " ~ name ~ "(T value){}");
- mixin("T " ~ name ~ "(){}");
- }
- class PropertyEventArgs : EventArgs { }
- class PropertyChangingEventArgs : PropertyEventArgs { }
- class PropertyChangedEventArgs : PropertyEventArgs { }
- struct PropertyChangingSignal { mixin Signal!(Object, PropertyChangingEventArgs); }
- struct PropertyChangedSignal
- {
- mixin Signal!(Object, PropertyChangedEventArgs);
- }
- abstract class DataObject
- {
- mixin DataProperty!(UUID, name);
- immutable PropertyChangingSignal propertyChanged;
- immutable PropertyChangingSignal propertyChanging;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement