diff options
author | Edoardo La Greca | 2025-08-01 17:11:19 +0200 |
---|---|---|
committer | Edoardo La Greca | 2025-08-01 17:11:19 +0200 |
commit | 756db579d92270ca7cce13f3eda8e4b17ac0039f (patch) | |
tree | 061eee6979ba2b8eb3ce6f09f3b39a83a81759b3 /src | |
parent | 81e45b37e317ac44bf1e1def1be221e48fab7f72 (diff) |
turn SizedMessageField into SizedInteger
Diffstat (limited to 'src')
-rw-r--r-- | src/main/kotlin/SizedInteger.kt (renamed from src/main/kotlin/SizedMessageField.kt) | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/src/main/kotlin/SizedMessageField.kt b/src/main/kotlin/SizedInteger.kt index c40a2a6..48e4e25 100644 --- a/src/main/kotlin/SizedMessageField.kt +++ b/src/main/kotlin/SizedInteger.kt @@ -1,21 +1,23 @@ import java.math.BigInteger /** - * [SizedMessageField] represents an unsigned integer number stored in a message field (i.e. a contiguous region of - * memory) of fixed size. + * [SizedInteger] represents an unsigned integer number of arbitrary yet fixed length. It's useful for storing integers + * got from a connection as message fields. * * @param size The size of the field, measured in bytes. * @param value The value of the field. * * @throws IllegalArgumentException if the size required to store the provided value is bigger than the provided size. */ -class SizedMessageField(val size: Int, value: BigInteger) { +class SizedInteger(val size: ULong, value: BigInteger) { init { if (!this.sizeOk(size, value)) { throw IllegalArgumentException() } } + constructor(size: ULong) : this(size, 0.toBigInteger()) + /** * @throws IllegalStateException on set if the declared size is not enough for the new value. */ @@ -26,10 +28,9 @@ class SizedMessageField(val size: Int, value: BigInteger) { } } - private fun sizeOk(size: Int, value: BigInteger): Boolean { - val requiredSize = value.toByteArray().size + private fun sizeOk(size: ULong, value: BigInteger): Boolean { + val requiredSize = value.toByteArray().size.toUInt() return requiredSize <= size } private fun sizeOk(value: BigInteger): Boolean = sizeOk(this.size, value) - private fun sizeOk(): Boolean = sizeOk(this.size, this.value) }
\ No newline at end of file |