Refactor kafka to pure Go (franz-go), fix DBC stubs, update Dockerfile

This commit is contained in:
Chris Rai
2026-01-31 00:05:47 -05:00
parent fbb820d7b3
commit b5bec57dfa
776 changed files with 18945 additions and 2052 deletions

View File

@@ -0,0 +1,50 @@
// Package reinterpret provides primitives for reinterpreting arbitrary-length values as signed or unsigned.
package reinterpret
// AsSigned reinterprets the provided unsigned value as a signed value.
func AsSigned(unsigned uint64, bits uint8) int64 {
switch bits {
case 8:
return int64(int8(uint8(unsigned)))
case 16:
return int64(int16(uint16(unsigned)))
case 32:
return int64(int32(uint32(unsigned)))
case 64:
return int64(unsigned)
default:
// calculate bit mask for sign bit
signBitMask := uint64(1 << (bits - 1))
// check if sign bit is set
isNegative := unsigned&signBitMask > 0
if !isNegative {
// sign bit not set means we can reinterpret the value as-is
return int64(unsigned)
}
// calculate bit mask for extracting value bits (all bits except the sign bit)
valueBitMask := signBitMask - 1
// calculate two's complement of the value bits
value := ((^unsigned) & valueBitMask) + 1
// result is the negative value of the two's complement
return -1 * int64(value)
}
}
// AsUnsigned reinterprets the provided signed value as an unsigned value.
func AsUnsigned(signed int64, bits uint8) uint64 {
switch bits {
case 8:
return uint64(uint8(int8(signed)))
case 16:
return uint64(uint16(int16(signed)))
case 32:
return uint64(uint32(int32(signed)))
case 64:
return uint64(signed)
default:
// calculate bit mask for extracting relevant bits
valueBitMask := uint64(1<<bits) - 1
// extract relevant bits
return uint64(signed) & valueBitMask
}
}