James Kuszmaul | 3b15b0c | 2022-11-08 14:03:16 -0800 | [diff] [blame^] | 1 | template swapEndian*(outp, inp: pointer, size: int) = |
| 2 | var i = cast[cstring](inp) |
| 3 | var o = cast[cstring](outp) |
| 4 | for x in 0..<size: |
| 5 | o[x] = i[(0..<size).len - x - 1] |
| 6 | |
| 7 | when system.cpuEndian == bigEndian: |
| 8 | func littleEndianX*(outp, inp: pointer, size: int) {.inline.} = swapEndian(outp, inp, size) |
| 9 | func bigEndianX*(outp, inp: pointer, size: int) {.inline.} = copyMem(outp, inp, size) |
| 10 | else: |
| 11 | func littleEndianX*(outp, inp: pointer, size: int) {.inline.} = copyMem(outp, inp, size) |
| 12 | func bigEndianX*(outp, inp: pointer, size: int) {.inline.} = swapEndian(outp, inp, size) |