bin_utils 0.0.2 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/ext/bin_utils/native.c +271 -701
- data/lib/bin_utils/pure_ruby.rb +188 -8
- data/lib/bin_utils/version.rb +1 -1
- data/test/benchmark.rb +171 -0
- metadata +4 -2
data/lib/bin_utils/pure_ruby.rb
CHANGED
@@ -6,8 +6,8 @@ end
|
|
6
6
|
|
7
7
|
module BinUtils
|
8
8
|
# Pure Ruby implementation of bin utils.
|
9
|
-
# It is provided
|
10
|
-
#
|
9
|
+
# It is provided just reference implementation, so that I could write tests before writting
|
10
|
+
# native code. You should not expect performance from it.
|
11
11
|
module PureRuby
|
12
12
|
extend self
|
13
13
|
INT32_INT32_LE = 'VV'.freeze
|
@@ -280,7 +280,10 @@ module BinUtils
|
|
280
280
|
res
|
281
281
|
end
|
282
282
|
|
283
|
+
BINARY = ::Encoding::BINARY
|
283
284
|
def append_int8!(str, *ints)
|
285
|
+
str ||= ''.force_encoding(BINARY)
|
286
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
284
287
|
i = 0
|
285
288
|
sz = ints.size
|
286
289
|
while i < sz
|
@@ -291,6 +294,8 @@ module BinUtils
|
|
291
294
|
end
|
292
295
|
|
293
296
|
def append_int16_le!(str, *ints)
|
297
|
+
str ||= ''.force_encoding(BINARY)
|
298
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
294
299
|
i = 0
|
295
300
|
sz = ints.size
|
296
301
|
while i < sz
|
@@ -302,6 +307,8 @@ module BinUtils
|
|
302
307
|
end
|
303
308
|
|
304
309
|
def append_int24_le!(str, *ints)
|
310
|
+
str ||= ''.force_encoding(BINARY)
|
311
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
305
312
|
i = 0
|
306
313
|
sz = ints.size
|
307
314
|
while i < sz
|
@@ -314,6 +321,8 @@ module BinUtils
|
|
314
321
|
end
|
315
322
|
|
316
323
|
def append_int32_le!(str, *ints)
|
324
|
+
str ||= ''.force_encoding(BINARY)
|
325
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
317
326
|
i = 0
|
318
327
|
sz = ints.size
|
319
328
|
while i < sz
|
@@ -326,6 +335,8 @@ module BinUtils
|
|
326
335
|
end
|
327
336
|
|
328
337
|
def append_int40_le!(str, *ints)
|
338
|
+
str ||= ''.force_encoding(BINARY)
|
339
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
329
340
|
i = 0
|
330
341
|
sz = ints.size
|
331
342
|
while i < sz
|
@@ -339,6 +350,8 @@ module BinUtils
|
|
339
350
|
end
|
340
351
|
|
341
352
|
def append_int48_le!(str, *ints)
|
353
|
+
str ||= ''.force_encoding(BINARY)
|
354
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
342
355
|
i = 0
|
343
356
|
sz = ints.size
|
344
357
|
while i < sz
|
@@ -350,6 +363,8 @@ module BinUtils
|
|
350
363
|
end
|
351
364
|
|
352
365
|
def append_int56_le!(str, *ints)
|
366
|
+
str ||= ''.force_encoding(BINARY)
|
367
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
353
368
|
i = 0
|
354
369
|
sz = ints.size
|
355
370
|
while i < sz
|
@@ -361,6 +376,8 @@ module BinUtils
|
|
361
376
|
end
|
362
377
|
|
363
378
|
def append_int64_le!(str, *ints)
|
379
|
+
str ||= ''.force_encoding(BINARY)
|
380
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
364
381
|
i = 0
|
365
382
|
sz = ints.size
|
366
383
|
while i < sz
|
@@ -372,6 +389,8 @@ module BinUtils
|
|
372
389
|
end
|
373
390
|
|
374
391
|
def append_int16_be!(str, *ints)
|
392
|
+
str ||= ''.force_encoding(BINARY)
|
393
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
375
394
|
i = 0
|
376
395
|
sz = ints.size
|
377
396
|
while i < sz
|
@@ -383,6 +402,8 @@ module BinUtils
|
|
383
402
|
end
|
384
403
|
|
385
404
|
def append_int24_be!(str, *ints)
|
405
|
+
str ||= ''.force_encoding(BINARY)
|
406
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
386
407
|
i = 0
|
387
408
|
sz = ints.size
|
388
409
|
while i < sz
|
@@ -394,6 +415,8 @@ module BinUtils
|
|
394
415
|
end
|
395
416
|
|
396
417
|
def append_int32_be!(str, *ints)
|
418
|
+
str ||= ''.force_encoding(BINARY)
|
419
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
397
420
|
i = 0
|
398
421
|
sz = ints.size
|
399
422
|
while i < sz
|
@@ -406,6 +429,8 @@ module BinUtils
|
|
406
429
|
end
|
407
430
|
|
408
431
|
def append_int40_be!(str, *ints)
|
432
|
+
str ||= ''.force_encoding(BINARY)
|
433
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
409
434
|
i = 0
|
410
435
|
sz = ints.size
|
411
436
|
while i < sz
|
@@ -419,6 +444,8 @@ module BinUtils
|
|
419
444
|
end
|
420
445
|
|
421
446
|
def append_int48_be!(str, *ints)
|
447
|
+
str ||= ''.force_encoding(BINARY)
|
448
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
422
449
|
i = 0
|
423
450
|
sz = ints.size
|
424
451
|
while i < sz
|
@@ -430,6 +457,8 @@ module BinUtils
|
|
430
457
|
end
|
431
458
|
|
432
459
|
def append_int56_be!(str, *ints)
|
460
|
+
str ||= ''.force_encoding(BINARY)
|
461
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
433
462
|
i = 0
|
434
463
|
sz = ints.size
|
435
464
|
while i < sz
|
@@ -441,6 +470,8 @@ module BinUtils
|
|
441
470
|
end
|
442
471
|
|
443
472
|
def append_int64_be!(str, *ints)
|
473
|
+
str ||= ''.force_encoding(BINARY)
|
474
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
444
475
|
i = 0
|
445
476
|
sz = ints.size
|
446
477
|
while i < sz
|
@@ -452,162 +483,224 @@ module BinUtils
|
|
452
483
|
end
|
453
484
|
|
454
485
|
def append_bersize_int8!(str, *ints)
|
486
|
+
str ||= ''.force_encoding(BINARY)
|
487
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
455
488
|
append_ber!(str, ints.size)
|
456
489
|
append_int8!(str, *ints)
|
457
490
|
end
|
458
491
|
|
459
492
|
def append_bersize_int16_le!(str, *ints)
|
493
|
+
str ||= ''.force_encoding(BINARY)
|
494
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
460
495
|
append_ber!(str, ints.size * 2)
|
461
496
|
append_int16_le!(str, *ints)
|
462
497
|
end
|
463
498
|
|
464
499
|
def append_bersize_int24_le!(str, *ints)
|
500
|
+
str ||= ''.force_encoding(BINARY)
|
501
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
465
502
|
append_ber!(str, ints.size * 3)
|
466
503
|
append_int24_le!(str, *ints)
|
467
504
|
end
|
468
505
|
|
469
506
|
def append_bersize_int32_le!(str, *ints)
|
507
|
+
str ||= ''.force_encoding(BINARY)
|
508
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
470
509
|
append_ber!(str, ints.size * 4)
|
471
510
|
append_int32_le!(str, *ints)
|
472
511
|
end
|
473
512
|
|
474
513
|
def append_bersize_int40_le!(str, *ints)
|
514
|
+
str ||= ''.force_encoding(BINARY)
|
515
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
475
516
|
append_ber!(str, ints.size * 5)
|
476
517
|
append_int40_le!(str, *ints)
|
477
518
|
end
|
478
519
|
|
479
520
|
def append_bersize_int48_le!(str, *ints)
|
521
|
+
str ||= ''.force_encoding(BINARY)
|
522
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
480
523
|
append_ber!(str, ints.size * 6)
|
481
524
|
append_int48_le!(str, *ints)
|
482
525
|
end
|
483
526
|
|
484
527
|
def append_bersize_int56_le!(str, *ints)
|
528
|
+
str ||= ''.force_encoding(BINARY)
|
529
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
485
530
|
append_ber!(str, ints.size * 7)
|
486
531
|
append_int56_le!(str, *ints)
|
487
532
|
end
|
488
533
|
|
489
534
|
def append_bersize_int64_le!(str, *ints)
|
535
|
+
str ||= ''.force_encoding(BINARY)
|
536
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
490
537
|
append_ber!(str, ints.size * 8)
|
491
538
|
append_int64_le!(str, *ints)
|
492
539
|
end
|
493
540
|
|
494
541
|
def append_bersize_int16_be!(str, *ints)
|
542
|
+
str ||= ''.force_encoding(BINARY)
|
543
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
495
544
|
append_ber!(str, ints.size * 2)
|
496
545
|
append_int16_be!(str, *ints)
|
497
546
|
end
|
498
547
|
|
499
548
|
def append_bersize_int24_be!(str, *ints)
|
549
|
+
str ||= ''.force_encoding(BINARY)
|
550
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
500
551
|
append_ber!(str, ints.size * 3)
|
501
552
|
append_int24_be!(str, *ints)
|
502
553
|
end
|
503
554
|
|
504
555
|
def append_bersize_int32_be!(str, *ints)
|
556
|
+
str ||= ''.force_encoding(BINARY)
|
557
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
505
558
|
append_ber!(str, ints.size * 4)
|
506
559
|
append_int32_be!(str, *ints)
|
507
560
|
end
|
508
561
|
|
509
562
|
def append_bersize_int40_be!(str, *ints)
|
563
|
+
str ||= ''.force_encoding(BINARY)
|
564
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
510
565
|
append_ber!(str, ints.size * 5)
|
511
566
|
append_int40_be!(str, *ints)
|
512
567
|
end
|
513
568
|
|
514
569
|
def append_bersize_int48_be!(str, *ints)
|
570
|
+
str ||= ''.force_encoding(BINARY)
|
571
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
515
572
|
append_ber!(str, ints.size * 6)
|
516
573
|
append_int48_be!(str, *ints)
|
517
574
|
end
|
518
575
|
|
519
576
|
def append_bersize_int56_be!(str, *ints)
|
577
|
+
str ||= ''.force_encoding(BINARY)
|
578
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
520
579
|
append_ber!(str, ints.size * 7)
|
521
580
|
append_int56_be!(str, *ints)
|
522
581
|
end
|
523
582
|
|
524
583
|
def append_bersize_int64_be!(str, *ints)
|
584
|
+
str ||= ''.force_encoding(BINARY)
|
585
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
525
586
|
append_ber!(str, ints.size * 8)
|
526
587
|
append_int64_be!(str, *ints)
|
527
588
|
end
|
528
589
|
|
529
590
|
def append_int32size_int8_le!(str, *ints)
|
591
|
+
str ||= ''.force_encoding(BINARY)
|
592
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
530
593
|
append_int32_le!(str, ints.size)
|
531
594
|
append_int8!(str, *ints)
|
532
595
|
end
|
533
596
|
|
534
597
|
def append_int32size_int16_le!(str, *ints)
|
598
|
+
str ||= ''.force_encoding(BINARY)
|
599
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
535
600
|
append_int32_le!(str, ints.size * 2)
|
536
601
|
append_int16_le!(str, *ints)
|
537
602
|
end
|
538
603
|
|
539
604
|
def append_int32size_int24_le!(str, *ints)
|
605
|
+
str ||= ''.force_encoding(BINARY)
|
606
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
540
607
|
append_int32_le!(str, ints.size * 3)
|
541
608
|
append_int24_le!(str, *ints)
|
542
609
|
end
|
543
610
|
|
544
611
|
def append_int32size_int32_le!(str, *ints)
|
612
|
+
str ||= ''.force_encoding(BINARY)
|
613
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
545
614
|
append_int32_le!(str, ints.size * 4)
|
546
615
|
append_int32_le!(str, *ints)
|
547
616
|
end
|
548
617
|
|
549
618
|
def append_int32size_int40_le!(str, *ints)
|
619
|
+
str ||= ''.force_encoding(BINARY)
|
620
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
550
621
|
append_int32_le!(str, ints.size * 5)
|
551
622
|
append_int40_le!(str, *ints)
|
552
623
|
end
|
553
624
|
|
554
625
|
def append_int32size_int48_le!(str, *ints)
|
626
|
+
str ||= ''.force_encoding(BINARY)
|
627
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
555
628
|
append_int32_le!(str, ints.size * 6)
|
556
629
|
append_int48_le!(str, *ints)
|
557
630
|
end
|
558
631
|
|
559
632
|
def append_int32size_int56_le!(str, *ints)
|
633
|
+
str ||= ''.force_encoding(BINARY)
|
634
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
560
635
|
append_int32_le!(str, ints.size * 7)
|
561
636
|
append_int56_le!(str, *ints)
|
562
637
|
end
|
563
638
|
|
564
639
|
def append_int32size_int64_le!(str, *ints)
|
640
|
+
str ||= ''.force_encoding(BINARY)
|
641
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
565
642
|
append_int32_le!(str, ints.size * 8)
|
566
643
|
append_int64_le!(str, *ints)
|
567
644
|
end
|
568
645
|
|
569
646
|
def append_int32size_int8_be!(str, *ints)
|
647
|
+
str ||= ''.force_encoding(BINARY)
|
648
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
570
649
|
append_int32_be!(str, ints.size)
|
571
650
|
append_int8!(str, *ints)
|
572
651
|
end
|
573
652
|
|
574
653
|
def append_int32size_int16_be!(str, *ints)
|
654
|
+
str ||= ''.force_encoding(BINARY)
|
655
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
575
656
|
append_int32_be!(str, ints.size * 2)
|
576
657
|
append_int16_be!(str, *ints)
|
577
658
|
end
|
578
659
|
|
579
660
|
def append_int32size_int24_be!(str, *ints)
|
661
|
+
str ||= ''.force_encoding(BINARY)
|
662
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
580
663
|
append_int32_be!(str, ints.size * 3)
|
581
664
|
append_int24_be!(str, *ints)
|
582
665
|
end
|
583
666
|
|
584
667
|
def append_int32size_int32_be!(str, *ints)
|
668
|
+
str ||= ''.force_encoding(BINARY)
|
669
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
585
670
|
append_int32_be!(str, ints.size * 4)
|
586
671
|
append_int32_be!(str, *ints)
|
587
672
|
end
|
588
673
|
|
589
674
|
def append_int32size_int40_be!(str, *ints)
|
675
|
+
str ||= ''.force_encoding(BINARY)
|
676
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
590
677
|
append_int32_be!(str, ints.size * 5)
|
591
678
|
append_int40_be!(str, *ints)
|
592
679
|
end
|
593
680
|
|
594
681
|
def append_int32size_int48_be!(str, *ints)
|
682
|
+
str ||= ''.force_encoding(BINARY)
|
683
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
595
684
|
append_int32_be!(str, ints.size * 6)
|
596
685
|
append_int48_be!(str, *ints)
|
597
686
|
end
|
598
687
|
|
599
688
|
def append_int32size_int56_be!(str, *ints)
|
689
|
+
str ||= ''.force_encoding(BINARY)
|
690
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
600
691
|
append_int32_be!(str, ints.size * 7)
|
601
692
|
append_int56_be!(str, *ints)
|
602
693
|
end
|
603
694
|
|
604
695
|
def append_int32size_int64_be!(str, *ints)
|
696
|
+
str ||= ''.force_encoding(BINARY)
|
697
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
605
698
|
append_int32_be!(str, ints.size * 8)
|
606
699
|
append_int64_be!(str, *ints)
|
607
700
|
end
|
608
701
|
|
609
|
-
BINARY = ::Encoding::BINARY
|
610
702
|
def append_string!(data, str)
|
703
|
+
data ||= ''.force_encoding(BINARY)
|
611
704
|
data << str.dup.force_encoding(BINARY)
|
612
705
|
end
|
613
706
|
|
@@ -615,14 +708,17 @@ module BinUtils
|
|
615
708
|
INT32LE_STRING = "Va*".freeze
|
616
709
|
INT32BE_STRING = "Na*".freeze
|
617
710
|
def append_bersize_string!(data, str)
|
711
|
+
data ||= ''.force_encoding(BINARY)
|
618
712
|
data << [str.bytesize, str].pack(BER_STRING)
|
619
713
|
end
|
620
714
|
|
621
715
|
def append_int32size_string_le!(data, str)
|
716
|
+
data ||= ''.force_encoding(BINARY)
|
622
717
|
data << [str.bytesize, str].pack(INT32LE_STRING)
|
623
718
|
end
|
624
719
|
|
625
720
|
def append_int32size_string_be!(data, str)
|
721
|
+
data ||= ''.force_encoding(BINARY)
|
626
722
|
data << [str.bytesize, str].pack(INT32BE_STRING)
|
627
723
|
end
|
628
724
|
|
@@ -630,6 +726,8 @@ module BinUtils
|
|
630
726
|
INT32LE_BER = 'Vw'
|
631
727
|
INT32BE_BER = 'Nw'
|
632
728
|
def append_ber!(data, *ints)
|
729
|
+
data ||= ''.force_encoding(BINARY)
|
730
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
633
731
|
if ints.size == 1 && ints[0] < 128
|
634
732
|
data << ints[0]
|
635
733
|
else
|
@@ -638,18 +736,24 @@ module BinUtils
|
|
638
736
|
end
|
639
737
|
|
640
738
|
def append_bersize_ber!(data, *ints)
|
739
|
+
data ||= ''.force_encoding(BINARY)
|
740
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
641
741
|
bers = ints.pack(BER)
|
642
742
|
append_ber!(data, bers.size)
|
643
743
|
data << bers
|
644
744
|
end
|
645
745
|
|
646
746
|
def append_int32size_ber_le!(data, *ints)
|
747
|
+
data ||= ''.force_encoding(BINARY)
|
748
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
647
749
|
bers = ints.pack(BER)
|
648
750
|
append_int32_le!(data, bers.size)
|
649
751
|
data << bers
|
650
752
|
end
|
651
753
|
|
652
754
|
def append_int32size_ber_be!(data, *ints)
|
755
|
+
data ||= ''.force_encoding(BINARY)
|
756
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
653
757
|
bers = ints.pack(BER)
|
654
758
|
append_int32_be!(data, bers.size)
|
655
759
|
data << bers
|
@@ -658,41 +762,57 @@ module BinUtils
|
|
658
762
|
# complex
|
659
763
|
|
660
764
|
def append_int8_ber!(data, int1, *ints)
|
765
|
+
data ||= ''.force_encoding(BINARY)
|
766
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
661
767
|
data << (int1 & 255)
|
662
768
|
append_ber!(data, *ints)
|
663
769
|
end
|
664
770
|
|
665
771
|
def append_int8_int16_le!(data, int1, *ints)
|
772
|
+
data ||= ''.force_encoding(BINARY)
|
773
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
666
774
|
data << (int1 & 255)
|
667
775
|
append_int16_le!(data, *ints)
|
668
776
|
end
|
669
777
|
|
670
778
|
def append_int8_int24_le!(data, int1, *ints)
|
779
|
+
data ||= ''.force_encoding(BINARY)
|
780
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
671
781
|
data << (int1 & 255)
|
672
782
|
append_int24_le!(data, *ints)
|
673
783
|
end
|
674
784
|
|
675
785
|
def append_int8_int32_le!(data, int1, *ints)
|
786
|
+
data ||= ''.force_encoding(BINARY)
|
787
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
676
788
|
data << (int1 & 255)
|
677
789
|
append_int32_le!(data, *ints)
|
678
790
|
end
|
679
|
-
|
791
|
+
|
680
792
|
def append_int16_ber_le!(data, int1, *ints)
|
793
|
+
data ||= ''.force_encoding(BINARY)
|
794
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
681
795
|
append_int16_le!(data, int1)
|
682
796
|
append_ber!(data, *ints)
|
683
797
|
end
|
684
798
|
|
685
799
|
def append_int16_int8_le!(data, int1, *ints)
|
800
|
+
data ||= ''.force_encoding(BINARY)
|
801
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
686
802
|
append_int16_le!(data, int1)
|
687
803
|
append_int8!(data, *ints)
|
688
804
|
end
|
689
805
|
|
690
806
|
def append_int16_int24_le!(data, int1, *ints)
|
807
|
+
data ||= ''.force_encoding(BINARY)
|
808
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
691
809
|
append_int16_le!(data, int1)
|
692
810
|
append_int24_le!(data, *ints)
|
693
811
|
end
|
694
812
|
|
695
813
|
def append_int16_int32_le!(data, int1, *ints)
|
814
|
+
data ||= ''.force_encoding(BINARY)
|
815
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
696
816
|
append_int16_le!(data, int1)
|
697
817
|
append_int32_le!(data, *ints)
|
698
818
|
end
|
@@ -703,151 +823,211 @@ module BinUtils
|
|
703
823
|
end
|
704
824
|
|
705
825
|
def append_int24_int8_le!(data, int1, *ints)
|
826
|
+
data ||= ''.force_encoding(BINARY)
|
827
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
706
828
|
append_int24_le!(data, int1)
|
707
829
|
append_int8!(data, *ints)
|
708
830
|
end
|
709
831
|
|
710
832
|
def append_int24_int16_le!(data, int1, *ints)
|
833
|
+
data ||= ''.force_encoding(BINARY)
|
834
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
711
835
|
append_int24_le!(data, int1)
|
712
836
|
append_int16_le!(data, *ints)
|
713
837
|
end
|
714
838
|
|
715
839
|
def append_int24_int32_le!(data, int1, *ints)
|
840
|
+
data ||= ''.force_encoding(BINARY)
|
841
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
716
842
|
append_int24_le!(data, int1)
|
717
843
|
append_int32_le!(data, *ints)
|
718
844
|
end
|
719
|
-
|
845
|
+
|
720
846
|
def append_int32_ber_le!(data, int1, *ints)
|
847
|
+
data ||= ''.force_encoding(BINARY)
|
848
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
721
849
|
append_int32_le!(data, int1)
|
722
850
|
append_ber!(data, *ints)
|
723
851
|
end
|
724
852
|
|
725
853
|
def append_int32_int8_le!(data, int1, *ints)
|
854
|
+
data ||= ''.force_encoding(BINARY)
|
855
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
726
856
|
append_int32_le!(data, int1)
|
727
857
|
append_int8!(data, *ints)
|
728
858
|
end
|
729
859
|
|
730
860
|
def append_int32_int16_le!(data, int1, *ints)
|
861
|
+
data ||= ''.force_encoding(BINARY)
|
862
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
731
863
|
append_int32_le!(data, int1)
|
732
864
|
append_int16_le!(data, *ints)
|
733
865
|
end
|
734
866
|
|
735
867
|
def append_int32_int24_le!(data, int1, *ints)
|
868
|
+
data ||= ''.force_encoding(BINARY)
|
869
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
736
870
|
append_int32_le!(data, int1)
|
737
871
|
append_int24_le!(data, *ints)
|
738
872
|
end
|
739
873
|
|
740
874
|
def append_int8_int16_be!(data, int1, *ints)
|
875
|
+
data ||= ''.force_encoding(BINARY)
|
876
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
741
877
|
data << (int1 & 255)
|
742
878
|
append_int16_be!(data, *ints)
|
743
879
|
end
|
744
880
|
|
745
881
|
def append_int8_int24_be!(data, int1, *ints)
|
882
|
+
data ||= ''.force_encoding(BINARY)
|
883
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
746
884
|
data << (int1 & 255)
|
747
885
|
append_int24_be!(data, *ints)
|
748
886
|
end
|
749
887
|
|
750
888
|
def append_int8_int32_be!(data, int1, *ints)
|
889
|
+
data ||= ''.force_encoding(BINARY)
|
890
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
751
891
|
data << (int1 & 255)
|
752
892
|
append_int32_be!(data, *ints)
|
753
893
|
end
|
754
|
-
|
894
|
+
|
755
895
|
def append_int16_ber_be!(data, int1, *ints)
|
896
|
+
data ||= ''.force_encoding(BINARY)
|
897
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
756
898
|
append_int16_be!(data, int1)
|
757
899
|
append_ber!(data, *ints)
|
758
900
|
end
|
759
901
|
|
760
902
|
def append_int16_int8_be!(data, int1, *ints)
|
903
|
+
data ||= ''.force_encoding(BINARY)
|
904
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
761
905
|
append_int16_be!(data, int1)
|
762
906
|
append_int8!(data, *ints)
|
763
907
|
end
|
764
908
|
|
765
909
|
def append_int16_int24_be!(data, int1, *ints)
|
910
|
+
data ||= ''.force_encoding(BINARY)
|
911
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
766
912
|
append_int16_be!(data, int1)
|
767
913
|
append_int24_be!(data, *ints)
|
768
914
|
end
|
769
915
|
|
770
916
|
def append_int16_int32_be!(data, int1, *ints)
|
917
|
+
data ||= ''.force_encoding(BINARY)
|
918
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
771
919
|
append_int16_be!(data, int1)
|
772
920
|
append_int32_be!(data, *ints)
|
773
921
|
end
|
774
|
-
|
922
|
+
|
775
923
|
def append_int24_ber_be!(data, int1, *ints)
|
924
|
+
data ||= ''.force_encoding(BINARY)
|
925
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
776
926
|
append_int24_be!(data, int1)
|
777
927
|
append_ber!(data, *ints)
|
778
928
|
end
|
779
929
|
|
780
930
|
def append_int24_int8_be!(data, int1, *ints)
|
931
|
+
data ||= ''.force_encoding(BINARY)
|
932
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
781
933
|
append_int24_be!(data, int1)
|
782
934
|
append_int8!(data, *ints)
|
783
935
|
end
|
784
936
|
|
785
937
|
def append_int24_int16_be!(data, int1, *ints)
|
938
|
+
data ||= ''.force_encoding(BINARY)
|
939
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
786
940
|
append_int24_be!(data, int1)
|
787
941
|
append_int16_be!(data, *ints)
|
788
942
|
end
|
789
943
|
|
790
944
|
def append_int24_int32_be!(data, int1, *ints)
|
945
|
+
data ||= ''.force_encoding(BINARY)
|
946
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
791
947
|
append_int24_be!(data, int1)
|
792
948
|
append_int32_be!(data, *ints)
|
793
949
|
end
|
794
|
-
|
950
|
+
|
795
951
|
def append_int32_ber_be!(data, int1, *ints)
|
952
|
+
data ||= ''.force_encoding(BINARY)
|
953
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
796
954
|
append_int32_be!(data, int1)
|
797
955
|
append_ber!(data, *ints)
|
798
956
|
end
|
799
957
|
|
800
958
|
def append_int32_int8_be!(data, int1, *ints)
|
959
|
+
data ||= ''.force_encoding(BINARY)
|
960
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
801
961
|
append_int32_be!(data, int1)
|
802
962
|
append_int8!(data, *ints)
|
803
963
|
end
|
804
964
|
|
805
965
|
def append_int32_int16_be!(data, int1, *ints)
|
966
|
+
data ||= ''.force_encoding(BINARY)
|
967
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
806
968
|
append_int32_be!(data, int1)
|
807
969
|
append_int16_be!(data, *ints)
|
808
970
|
end
|
809
971
|
|
810
972
|
def append_int32_int24_be!(data, int1, *ints)
|
973
|
+
data ||= ''.force_encoding(BINARY)
|
974
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
811
975
|
append_int32_be!(data, int1)
|
812
976
|
append_int24_be!(data, *ints)
|
813
977
|
end
|
814
978
|
|
815
979
|
def append_ber_int8!(data, int1, *ints)
|
980
|
+
data ||= ''.force_encoding(BINARY)
|
981
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
816
982
|
append_ber!(data, int1)
|
817
983
|
append_int8!(data, *ints)
|
818
984
|
end
|
819
985
|
|
820
986
|
def append_ber_int16_le!(data, int1, *ints)
|
987
|
+
data ||= ''.force_encoding(BINARY)
|
988
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
821
989
|
append_ber!(data, int1)
|
822
990
|
append_int16_le!(data, *ints)
|
823
991
|
end
|
824
992
|
|
825
993
|
def append_ber_int24_le!(data, int1, *ints)
|
994
|
+
data ||= ''.force_encoding(BINARY)
|
995
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
826
996
|
append_ber!(data, int1)
|
827
997
|
append_int24_le!(data, *ints)
|
828
998
|
end
|
829
999
|
|
830
1000
|
def append_ber_int32_le!(data, int1, *ints)
|
1001
|
+
data ||= ''.force_encoding(BINARY)
|
1002
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
831
1003
|
append_ber!(data, int1)
|
832
1004
|
append_int32_le!(data, *ints)
|
833
1005
|
end
|
834
1006
|
|
835
1007
|
def append_ber_int8!(data, int1, *ints)
|
1008
|
+
data ||= ''.force_encoding(BINARY)
|
1009
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
836
1010
|
append_ber!(data, int1)
|
837
1011
|
append_int8!(data, *ints)
|
838
1012
|
end
|
839
1013
|
|
840
1014
|
def append_ber_int16_be!(data, int1, *ints)
|
1015
|
+
data ||= ''.force_encoding(BINARY)
|
1016
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
841
1017
|
append_ber!(data, int1)
|
842
1018
|
append_int16_be!(data, *ints)
|
843
1019
|
end
|
844
1020
|
|
845
1021
|
def append_ber_int24_be!(data, int1, *ints)
|
1022
|
+
data ||= ''.force_encoding(BINARY)
|
1023
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
846
1024
|
append_ber!(data, int1)
|
847
1025
|
append_int24_be!(data, *ints)
|
848
1026
|
end
|
849
1027
|
|
850
1028
|
def append_ber_int32_be!(data, int1, *ints)
|
1029
|
+
data ||= ''.force_encoding(BINARY)
|
1030
|
+
ints = ints[0] if ints.size == 1 && Array === ints[0]
|
851
1031
|
append_ber!(data, int1)
|
852
1032
|
append_int32_be!(data, *ints)
|
853
1033
|
end
|