Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
|
|
@ -0,0 +1,24 @@
|
|||
sub vlq_encode ($number is copy) {
|
||||
my @vlq = (127 +& $number).fmt("%02X");
|
||||
$number +>= 7;
|
||||
while ($number) {
|
||||
@vlq.push: (128 +| (127 +& $number)).fmt("%02X");
|
||||
$number +>= 7;
|
||||
}
|
||||
@vlq.reverse.join: ':';
|
||||
}
|
||||
|
||||
sub vlq_decode ($string) {
|
||||
sum $string.split(':').reverse.map: {(:16($_) +& 127) +< (7 × $++)}
|
||||
}
|
||||
|
||||
#test encoding and decoding
|
||||
for (
|
||||
0, 0xa, 123, 254, 255, 256,
|
||||
257, 65534, 65535, 65536, 65537, 0x1fffff,
|
||||
0x200000
|
||||
) -> $testcase {
|
||||
printf "%8s %12s %8s\n", $testcase,
|
||||
my $encoded = vlq_encode($testcase),
|
||||
vlq_decode($encoded);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue