package top.tangyh.lamp.filing.utils object DistributedIdUtil { fun generateId(platformId: Long, localId: Long): Long { require(platformId in 0..0xFFFF) { "platformId must be 0-65535" } val safeLocalId = localId and 0xFFFFFFFFFFFF return (platformId shl 48) or safeLocalId } fun parsePlatform(id: Long): Long = id ushr 48 fun parseLocal(id: Long): Long = id and 0xFFFFFFFFFFFF }