in Sources/TSCUtility/BitstreamReader.swift [122:149]
mutating func readSingleAbbreviatedRecordOperand(_ operand: Bitstream.Abbreviation.Operand) throws -> UInt64 {
switch operand {
case .char6:
let value = try cursor.read(6)
switch value {
case 0...25:
return value + UInt64(("a" as UnicodeScalar).value)
case 26...51:
return value + UInt64(("A" as UnicodeScalar).value) - 26
case 52...61:
return value + UInt64(("0" as UnicodeScalar).value) - 52
case 62:
return UInt64(("." as UnicodeScalar).value)
case 63:
return UInt64(("_" as UnicodeScalar).value)
default:
fatalError()
}
case .literal(let value):
return value
case .fixed(let width):
return try cursor.read(Int(width))
case .vbr(let width):
return try cursor.readVBR(Int(width))
case .array, .blob:
fatalError()
}
}