
commonMain.io.github.alexandrepiveteau.graphs.util.Packing.kt Maven / Gradle / Ivy
@file:Suppress("NOTHING_TO_INLINE")
package io.github.alexandrepiveteau.graphs.util
/** Packs two [Int] values into one [Long] value for use in inline classes. */
@PublishedApi
internal inline fun packInts(val1: Int, val2: Int): Long {
return val1.toLong().shl(32) or (val2.toLong() and 0xFFFFFFFF)
}
/** Unpacks the first [Int] value in [packInts] from its returned [Long]. */
@PublishedApi
internal inline fun unpackInt1(value: Long): Int {
return value.shr(32).toInt()
}
/** Unpacks the second [Int] value in [packInts] from its returned [Long]. */
@PublishedApi
internal inline fun unpackInt2(value: Long): Int {
return value.and(0xFFFFFFFF).toInt()
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy