Tehforsch/diman

`QProduct` and `DebugStorageType` should be local traits

Closed this issue · 0 comments

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