mirror of
https://github.com/logos-storage/nim-leopard.git
synced 2026-01-02 13:43:08 +00:00
add TODO for usage
This commit is contained in:
parent
1f0861815f
commit
16818fcd3b
52
README.md
52
README.md
@ -76,57 +76,7 @@ So, on macOS, when running `nimble test` of nim-leopard or compiling a project t
|
||||
|
||||
## Usage
|
||||
|
||||
```nim
|
||||
import leopard
|
||||
|
||||
# Initialize Leopard-RS
|
||||
leoInit()
|
||||
|
||||
var
|
||||
N: Positive
|
||||
data: seq[seq[byte]]
|
||||
|
||||
# RS(256,239) :: 239 data symbols, 17 parity symbols
|
||||
assert RS(256,239).data == 239
|
||||
assert RS(256,239).parity == 17
|
||||
|
||||
# Choose some N for symbolBytes
|
||||
N = 1
|
||||
# For RS(256,239) fill data such that
|
||||
assert data.len == 239
|
||||
for i in data: assert i.len == N * 64
|
||||
|
||||
# Encode
|
||||
let
|
||||
parityData = RS(256,239).encode data
|
||||
|
||||
assert parityData.isOk
|
||||
assert parityData.get.len == 17
|
||||
|
||||
# Poke up to 17 holes total in data and parityData
|
||||
var
|
||||
daWithHoles = data
|
||||
paWithHoles = parityData.get
|
||||
|
||||
daWithHoles[9] = @[]
|
||||
daWithHoles[53] = @[]
|
||||
daWithHoles[208] = @[]
|
||||
# ...
|
||||
paWithHoles[1] = @[]
|
||||
paWithHoles[4] = @[]
|
||||
# ...
|
||||
|
||||
# Decode
|
||||
let
|
||||
recoveredData = RS(256,239).decode(daWithHoles, paWithHoles, (N * 64).uint)
|
||||
|
||||
if recoveredData.isOk:
|
||||
assert recoveredData.get == data
|
||||
assert recoveredData.get != daWithHoles
|
||||
else:
|
||||
# More than 17 holes were poked
|
||||
assert recoveredData.error.code == LeopardNeedMoreData
|
||||
```
|
||||
TODO
|
||||
|
||||
### OpenMP
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user