Skip to content

Instantly share code, notes, and snippets.

@generalmimon
Last active January 21, 2022 16:43
Show Gist options
  • Save generalmimon/a2c8a0fa0a4f5cf3b6b310749182e5f1 to your computer and use it in GitHub Desktop.
Save generalmimon/a2c8a0fa0a4f5cf3b6b310749182e5f1 to your computer and use it in GitHub Desktop.
# See https://github.com/kaitai-io/kaitai_struct_formats/blob/e4f724e/common/vlq_base128_le.ksy
puts [
groups[0].value,
len >= 2 ? (groups[1].value << 7) : nil,
len >= 3 ? (groups[2].value << 14) : nil,
len >= 4 ? (groups[3].value << 21) : nil,
len >= 5 ? (groups[4].value << 28) : nil,
len >= 6 ? (groups[5].value << 35) : nil,
len >= 7 ? (groups[6].value << 42) : nil,
len >= 8 ? (groups[7].value << 49) : nil,
len >= 9 ? (groups[8].value << 56) : nil,
len >= 10 ? ((groups[9].value & 0x01) << 63) : nil,
].map { |x| !(x.is_a? Integer) ? x.inspect : '0b' + x.to_s(2).rjust(64, '0').reverse.scan(/(.{1,8})/).map { |m| m[0] }.join('_').reverse }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment