All Downloads are FREE. Search and download functionalities are using the official Maven repository.

commonMain.org.ton.api.adnl.message.AdnlMessageQuery.kt Maven / Gradle / Ivy

package org.ton.api.adnl.message

import io.ktor.utils.io.core.*
import kotlinx.serialization.Polymorphic
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import org.ton.tl.Bits256
import org.ton.tl.TlConstructor
import org.ton.tl.TlReader
import org.ton.tl.TlWriter
import org.ton.tl.constructors.*

@Polymorphic
@SerialName("adnl.message.query")
@Serializable
public data class AdnlMessageQuery(
    @SerialName("query_id")
    val queryId: Bits256,
    val query: ByteArray
) : AdnlMessage {
    override fun equals(other: Any?): Boolean {
        if (this === other) return true
        if (other !is AdnlMessageQuery) return false
        if (queryId != other.queryId) return false
        if (!query.contentEquals(other.query)) return false
        return true
    }

    override fun hashCode(): Int {
        var result = queryId.hashCode()
        result = 31 * result + query.contentHashCode()
        return result
    }

    public companion object : TlConstructor(
        schema = "adnl.message.query query_id:int256 query:bytes = adnl.Message",
    ) {
        public fun sizeOf(value: AdnlMessageQuery): Int =
            256 / Byte.SIZE_BYTES + BytesTlConstructor.sizeOf(value.query)

        override fun encode(output: TlWriter, value: AdnlMessageQuery) {
            output.writeBits256(value.queryId)
            output.writeBytes(value.query)
        }

        override fun decode(input: TlReader): AdnlMessageQuery {
            val queryId = input.readBits256()
            val query = input.readBytes()
            return AdnlMessageQuery(queryId, query)
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy