-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Figure out what I really mean by StewardData #46
Comments
Current places StewardData is required:
Also, DataTimeline itself DOESN'T require StewardData as a supertrait, which is worth reconsidering. And the supertraits required by StewardData:
Also, PersistentlyIdentifiedType ISN'T required by StewardData, which is worth reconsidering. Time and Globals don't need it, although I might want to stick Globals behind a DataHandle, which would require it. Events and direct innards of DataHandle require it for serialization. Queries and query results will need it if they want to be able to use Serialize. In summary (including only the disputed traits; ! means "definitely not required", not "required to not have it"; DeserializeOwned is automatically included with Serialize):
|
In conclusion, I don't see any real pattern here. There is no call for a single "StewardData" trait to unite all of these uses. HOWEVER, we do need some form of abbreviation – it's pretty bad to have a long list of traits that's repeated in a lot of places, especially if you eventually decide you need to add or remove a trait from the list. So I propose that each long list of traits be abbreviated into a single trait, with a blanket impl.
DataTimeline and Event are already traits, so their lists of supertraits already don't need to be repeated everywhere. |
Note: normally, |
Currently, various parts of the code require trait StewardData, but I'm not sure they have the same actual requirements, or if the requirements I've chosen are exactly the correct ones.
Also, if/when StewardData is actually the correct concept, if it's just a collection of supertraits, I probably want to make a blanket impl so that you don't have to implement it yourself all over the place.
The text was updated successfully, but these errors were encountered: