japaric/linalg.rs — pull request #32 by japaric (2014-12-22 21:24:46+00:00)
Title: refactor(lib): reduce (ab)use of generics, hide implementation details

Functionality remains unchanged, all tests continue to pass

User visible changes:

- The generic `Col`/`Row` struct has been splitted into more concretes types:
`ColVec`/`RowVec`, `Col`/`Row` and `MutCol`/`MutRow`, which are analogous to
`Vec`, `&[T]` and `&mut [T]`.
- Similarly, the generic `Diag` struct has been splitted into `Diag` and
`MutDiag`, there is no owned version.
- The `*Assign` traits now take the RHS by value, to match the semantics of the
other operator traits.
- Removed some implementation details that leaked into the public API:
- `blas::[Mut]Vector`, `blas::Matrix`, `blas::ToBlasInt` traits are gone
- removed implementation of some traits (like `At`) on stdlib types.
- Reduced use of generics where it hurt readability of the docs.

Closes #31

[breaking-change]