Commit 3a59caa
committed
FEAT: Encode expected/actual info in ShapeError
Add a (limited) way to add specific information to a ShapeError
Admittedly wonky, but space efficient.
Result<(), ShapeError> used to be 1 byte, and with this change it
expands to 16 bytes (2 usize on 64-bit).
The remaining 15 bytes are used for optimistically packing as much of
extra info into the error message as possible.
For example we can store expected/actual index for errors (for example
index out of bounds or axis out of bounds, these are not so commonly
handled with ShapeError).
With this change it is supported:
- Expected/actual index with 7 bytes per index
- Expected/actual shape with 7 bytes per shape
supports storing shapes with one or two bytes (< 256²) per dimension,
with limited ndim.1 parent da365be commit 3a59caa
4 files changed
+530
-10
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
49 | 49 | | |
50 | 50 | | |
51 | 51 | | |
| 52 | + | |
52 | 53 | | |
53 | 54 | | |
54 | 55 | | |
| |||
0 commit comments