1.3.0 release #7

Merged
Infendro merged 13 commits from develop into main 2026-01-29 16:46:03 +00:00
4 changed files with 25 additions and 3 deletions
Showing only changes of commit 24c667bc9c - Show all commits

View File

@@ -0,0 +1,5 @@
package com.infendro.encoding.exception
abstract class DecodeException : Exception() {
abstract override val message: String
}

View File

@@ -0,0 +1,12 @@
package com.infendro.encoding.exception
class IllegalByteException(
val byte: Byte,
) : DecodeException() {
override val message: String
get() {
val hex = "0x${byte.toHexString().padStart(2, '0')}"
val char = "'${byte.toInt().toChar()}'"
return "Illegal byte $hex ($char)."
}
}

View File

@@ -1,6 +1,7 @@
package com.infendro.encoding.numeric package com.infendro.encoding.numeric
import com.infendro.encoding.Encoding import com.infendro.encoding.Encoding
import com.infendro.encoding.exception.IllegalByteException
import com.infendro.encoding.util.BigInt import com.infendro.encoding.util.BigInt
import com.infendro.encoding.util.log2 import com.infendro.encoding.util.log2
import kotlin.math.ceil import kotlin.math.ceil
@@ -30,8 +31,11 @@ open class NumericEncoding(
var value = BigInt.zero var value = BigInt.zero
for (i in 0..<bytes.size) { for (i in 0..<bytes.size) {
val index = alphabet.indexOf(bytes[i]) val byte = bytes[i]
if (index == -1) throw Exception() //TODO
val index = alphabet.indexOf(byte)
if (index == -1) throw IllegalByteException(byte)
value = value.timesAdd(base, index) value = value.timesAdd(base, index)
} }

View File

@@ -1,6 +1,7 @@
package com.infendro.encoding.stream package com.infendro.encoding.stream
import com.infendro.encoding.Encoding import com.infendro.encoding.Encoding
import com.infendro.encoding.exception.IllegalByteException
import com.infendro.encoding.util.align import com.infendro.encoding.util.align
import com.infendro.encoding.util.divCeil import com.infendro.encoding.util.divCeil
import com.infendro.encoding.util.lcm import com.infendro.encoding.util.lcm
@@ -76,7 +77,7 @@ open class StreamEncoding(
if (byte == padding) break if (byte == padding) break
val index = alphabet.indexOf(byte) val index = alphabet.indexOf(byte)
if (index == -1) throw Exception() //TODO if (index == -1) throw IllegalByteException(byte)
buffer = (buffer shl bits) + index.toByte() buffer = (buffer shl bits) + index.toByte()
bufferBits += bits bufferBits += bits