@@ -121,8 +121,8 @@ proc getString*(node: StructNode): string {.noSideEffect, inline.} =
121
121
proc computeLength*(format: string ): int =
122
122
## Compute the length for string represent `format`
123
123
var repeat = newString(0)
124
- for i in 0..format.len-1 :
125
- let f: char = format[i]
124
+ for i in 0..< format.len:
125
+ let f = format[i]
126
126
if f in '0'..'9':
127
127
repeat.add($f)
128
128
else:
@@ -169,7 +169,7 @@ proc load_32f*[T: SomeByte](a, b, c, d: T, endian: Endianness): float32 {.inline
169
169
o[0 ] = d
170
170
171
171
proc load_64* (s: string , endian: Endianness): int64 {.inline.} =
172
- for i in 0 .. sizeof(int64 )- 1 :
172
+ for i in 0 ..< sizeof(int64 ):
173
173
result = result shl 8
174
174
if endian == littleEndian:
175
175
result = result or s[8 - i - 1 ].int64
@@ -178,7 +178,7 @@ proc load_64*(s: string, endian: Endianness): int64 {.inline.} =
178
178
179
179
proc load_64f* (s: string , endian: Endianness): float64 {.inline.} =
180
180
var o = cast [cstring ](addr result )
181
- for i in 0 .. sizeof(float64 )- 1 :
181
+ for i in 0 ..< sizeof(float64 ):
182
182
if endian == littleEndian:
183
183
o[i] = s[i]
184
184
else :
@@ -276,10 +276,10 @@ proc unpack*(fmt, buf: string): seq[StructNode] =
276
276
context.buffer = buf
277
277
278
278
var repeat = newString(0 )
279
- for i in 0 .. fmt.len- 1 :
279
+ for i in 0 ..< fmt.len:
280
280
let f: char = fmt[i]
281
281
if f in '0' .. '9' :
282
- repeat.add($ f)
282
+ repeat.add(f)
283
283
continue
284
284
else :
285
285
if repeat == " " :
@@ -352,7 +352,7 @@ proc pack_16(result: var string, vars: openarray[StructNode], ctx: var StructCon
352
352
353
353
proc pack_32(result : var string , vars: openarray [StructNode], ctx: var StructContext, signed: bool ) =
354
354
for i in 0 ..< ctx.repeat:
355
- var value: array [0 .. 3 , char ]
355
+ var value: array [4 , char ]
356
356
case vars[ctx.offset].kind:
357
357
of StructFloat:
358
358
value = extract_32(vars[ctx.offset].fval.float32 , ctx.byteOrder)
@@ -363,16 +363,14 @@ proc pack_32(result: var string, vars: openarray[StructNode], ctx: var StructCon
363
363
value = extract_32(vars[ctx.offset].num.uint32 , ctx.byteOrder)
364
364
else :
365
365
raise newException(ValueError, " not supported" )
366
-
367
366
for j in 0 .. 3 :
368
- result [ctx.index + i + j] = value[j]
369
-
367
+ result [ctx.index + i * 4 + j] = value[j]
370
368
inc(ctx.offset)
371
369
inc(ctx.index, 4 * ctx.repeat)
372
370
373
371
proc pack_64(result : var string , vars: openarray [StructNode], ctx: var StructContext, signed: bool ) =
374
372
for i in 0 ..< ctx.repeat:
375
- var value: array [0 .. 7 , char ]
373
+ var value: array [8 , char ]
376
374
case vars[ctx.offset].kind:
377
375
of StructFloat:
378
376
value = extract_64(vars[ctx.offset].fval, ctx.byteOrder)
@@ -385,7 +383,7 @@ proc pack_64(result: var string, vars: openarray[StructNode], ctx: var StructCon
385
383
raise newException(ValueError, " not supported" )
386
384
387
385
for j in 0 .. 7 :
388
- result [ctx.index + i + j] = value[j]
386
+ result [ctx.index + i * 8 + j] = value[j]
389
387
390
388
inc(ctx.offset)
391
389
inc(ctx.index, 8 * ctx.repeat)
@@ -394,10 +392,10 @@ proc pack_string(result: var string, vars: openarray[StructNode], ctx: var Struc
394
392
assert vars[ctx.offset].kind == StructString
395
393
396
394
let value = vars[ctx.offset].str
397
- for i in 0 .. value.len- 1 :
395
+ for i in 0 ..< value.len:
398
396
result [ctx.index + i] = value[i]
399
397
if (value.len < ctx.repeat):
400
- for i in value.len.. ctx.repeat- 1 :
398
+ for i in value.len..< ctx.repeat:
401
399
result [ctx.index + i] = '\x00 '
402
400
403
401
inc(ctx.offset)
@@ -412,11 +410,10 @@ proc pack*(fmt: string, vars: varargs[StructNode]): string =
412
410
result = newString(computeLength(fmt))
413
411
var context = newStructContext()
414
412
var repeat = newString(0 )
415
- for i in 0 .. fmt.len- 1 :
416
- let f: char = fmt[i]
417
-
413
+ for i in 0 ..< fmt.len:
414
+ let f = fmt[i]
418
415
if f in '0' .. '9' :
419
- repeat.add($ f)
416
+ repeat.add(f)
420
417
continue
421
418
else :
422
419
if repeat == " " :
@@ -474,7 +471,7 @@ macro pack_m(n: openarray[typed]): untyped =
474
471
result = newNimNode(nnkStmtList, n)
475
472
result .add(newCall("initStruct", ident("s"), n[ 0]))
476
473
if n.len > 1 :
477
- for i in 1 .. n.len- 1 :
474
+ for i in 1 ..< n.len:
478
475
result .add(newCall(ident(" add" ), ident(" s" ), n[i]))
479
476
480
477
template `pack` * (n: varargs [typed ]): untyped =
0 commit comments