`QProduct` and `DebugStorageType` should be local traits
Closed this issue · 0 comments
Tehforsch commented
They should be defined and implemented in the calling crate rather than in diman.
For DebugStorageType
, this is necessary because otherwise, a mismatch in version of glam
will cause an error downstream (since DebugStorageType
is only implemented for dimans version of glam)
For QProduct
, this will clean up the interface and also allow getting rid of the tuple syntax via a definition like
type Product<Q1, Q2=(), Q3=(), ...> = <Q1 as QProduct<...>>
which is currently not possible because it requires an impl of QProduct
for ()
which we can only give if Dimension
is crate-local
This also solves the minor issue of requiring use crate as diman
in si/mod