Following features should be considered for improvement to the quintessence files:
[ ] add passthrough so the variable does not become a member variable, useful for inheritance.
[ ] default_argument_dependency_symbols could be added to a property to signal that a dependency is included in the default argument. This currently exists for function arguments. It might be considered that this feature not be included at all and there are more proper ways to solve the same problem, such as defining static types on the class.
[ ] enum used to define enums, however, custom function would be added to the class that would return string representations for the enum.
[ ] validations same principal as guards, but with much more robust options with friendly error messages. Greater than, less than, etc. cascading validations [ validation: (value != nullptr), then: [ - validation: (value.length() > 3), - validation: (value.length < 5) ], also, validations that include data that was passed in could be used in error messages "The identifier "foobar" does not exist", or could call custom validator classes. Or, validations could be "carried up" from dependencies.
[ ] error lines traceable back to quintessence lines
[ ] add required to parameters and do not include (in fact require not present) a default argument.
[ ] profile option would introduce profiling at the beginning and ending of the function.
[x] setter: explicit
[ ] no dependency requirement if the dependency is the self class
[x] expose would make the property public
[ ] Full length error messages on guards
[ ] const for members of a class, currently constexpr vars are expected to have const but for some reason do not. Places where the char cast (char*)"Foobar" is used on const strings should be updated to have const and not use the cast if this is possible.
[ ] string const lists, meaning, similar to how enums are listed, but would create const strings with the same values as the constants.
[ ] some way to catch code in guards that would not parse correctly during the documentation building phase, usually items that have the :: symbol in them.
Following features should be considered for improvement to the quintessence files:
passthrough
so the variable does not become a member variable, useful for inheritance.default_argument_dependency_symbols
could be added to a property to signal that a dependency is included in the default argument. This currently exists for function arguments. It might be considered that this feature not be included at all and there are more proper ways to solve the same problem, such as defining static types on the class.enum
used to define enums, however, custom function would be added to the class that would return string representations for the enum.validations
same principal asguards
, but with much more robust options with friendly error messages. Greater than, less than, etc. cascading validations[ validation: (value != nullptr), then: [ - validation: (value.length() > 3), - validation: (value.length < 5) ]
, also, validations that include data that was passed in could be used in error messages "The identifier "foobar" does not exist
", or could call custom validator classes. Or, validations could be "carried up" from dependencies.required
to parameters and do not include (in fact require not present) a default argument.profile
option would introduce profiling at the beginning and ending of the function.setter: explicit
expose
would make the property publicconst
for members of a class, currentlyconstexpr
vars are expected to haveconst
but for some reason do not. Places where the char cast(char*)"Foobar"
is used on const strings should be updated to have const and not use the cast if this is possible.::
symbol in them.