### 3 releases (breaking)

0.3.0 | Apr 17, 2022 |
---|---|

0.2.0 | Oct 28, 2021 |

0.1.0 | Sep 28, 2021 |

#**4** in #memcpy

**533** downloads per month

Used in **5** crates
(3 directly)

**MIT/Apache**

15KB

329 lines

# ndcopy

Fast N-dimensional array memcpy.

Speed is achieved by copying slices row-by-row. Rust code is much faster at copying slices than trying to index N-dimensional coordinates for every value index.

## Example Code

`use` `ndcopy``::``ndshape``::``{`ConstShape`,` ConstShape3u32`}``;`
`use` `ndcopy``::`copy3`;`
`type` `SrcShape` `=` `ConstShape3u32``<`50, 50, 50`>``;`
`type` `DstShape` `=` `ConstShape3u32``<`25, 25, 25`>``;`
`let` src `=` `[``1``u8``;` `SrcShape``::``USIZE``]``;`
`let` `mut` dst `=` `[``0``u8``;` `DstShape``::``USIZE``]``;`
`let` copy_shape `=` `[``20``;` `3``]``;`
`let` src_min `=` `[``1``,` `2``,` `3``]``;`
`let` dst_min `=` `[``2``,` `3``,` `4``]``;`
`copy3``(`
copy_shape`,`
`&`src`,`
`&`SrcShape `{``}``,`
src_min`,`
`&``mut` dst`,`
`&`DstShape `{``}``,`
dst_min`,`
`)``;`

License: MIT OR Apache-2.0

###
`lib.rs`

:

Fast N-dimensional array memcpy.

Speed is achieved by copying slices row-by-row. Rust code is much faster at copying slices than trying to index N-dimensional coordinates for every value index.

# Example Code

`use` `ndcopy``::``ndshape``::``{`ConstShape`,` ConstShape3u32`}``;`
`use` `ndcopy``::`copy3`;`
`type` `SrcShape` `=` `ConstShape3u32``<`50, 50, 50`>``;`
`type` `DstShape` `=` `ConstShape3u32``<`25, 25, 25`>``;`
`let` src `=` `[``1``u8``;` `SrcShape``::``USIZE``]``;`
`let` `mut` dst `=` `[``0``u8``;` `DstShape``::``USIZE``]``;`
`let` copy_shape `=` `[``20``;` `3``]``;`
`let` src_min `=` `[``1``,` `2``,` `3``]``;`
`let` dst_min `=` `[``2``,` `3``,` `4``]``;`
`copy3``(`
copy_shape`,`
`&`src`,`
`&`SrcShape `{``}``,`
src_min`,`
`&``mut` dst`,`
`&`DstShape `{``}``,`
dst_min`,`
`)``;`

#### Dependencies

~74KB