/* * Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ // Auto-generated file. DO NOT EDIT! // Generated by org.jetbrains.kotlin.generators.builtins.numbers.primitives.JsCharGenerator package kotlin // Char is a magic class. // Char is defined as a regular class, but we lower it as a value class. // See [org.jetbrains.kotlin.ir.backend.js.utils.JsInlineClassesUtils.isClassInlineLike] for explanation. /** Represents a 16-bit Unicode character. */ public class Char @kotlin.internal.LowPriorityInOverloadResolution internal constructor(private val value: Int) : Comparable { @SinceKotlin("1.5") @WasExperimental(ExperimentalStdlibApi::class) public constructor(code: UShort) : this(code.toInt()) /** * Compares this value with the specified value for order. * * Returns zero if this value is equal to the specified other value, a negative number if it's less than other, * or a positive number if it's greater than other. */ @kotlin.internal.IntrinsicConstEvaluation public override fun compareTo(other: Char): Int = value - other.value /** Adds the other Int value to this value resulting a Char. */ @kotlin.internal.IntrinsicConstEvaluation public operator fun plus(other: Int): Char = (value + other).toChar() /** Subtracts the other Char value from this value resulting an Int. */ @kotlin.internal.IntrinsicConstEvaluation public operator fun minus(other: Char): Int = value - other.value /** Subtracts the other Int value from this value resulting a Char. */ @kotlin.internal.IntrinsicConstEvaluation public operator fun minus(other: Int): Char = (value - other).toChar() /** * Returns this value incremented by one. * * @sample samples.misc.Builtins.inc */ public operator fun inc(): Char = (value + 1).toChar() /** * Returns this value decremented by one. * * @sample samples.misc.Builtins.dec */ public operator fun dec(): Char = (value - 1).toChar() /** Creates a range from this value to the specified [other] value. */ public operator fun rangeTo(other: Char): CharRange = CharRange(this, other) /** * Creates a range from this value up to but excluding the specified [other] value. * * If the [other] value is less than or equal to `this` value, then the returned range is empty. */ @SinceKotlin("1.9") @WasExperimental(ExperimentalStdlibApi::class) public operator fun rangeUntil(other: Char): CharRange = this until other /** Returns the value of this character as a `Byte`. */ @Deprecated("Conversion of Char to Number is deprecated. Use Char.code property instead.", ReplaceWith("this.code.toByte()")) @DeprecatedSinceKotlin(warningSince = "1.5") @kotlin.internal.IntrinsicConstEvaluation public fun toByte(): Byte = value.toByte() /** Returns the value of this character as a `Char`. */ @kotlin.internal.IntrinsicConstEvaluation public fun toChar(): Char = this /** Returns the value of this character as a `Short`. */ @Deprecated("Conversion of Char to Number is deprecated. Use Char.code property instead.", ReplaceWith("this.code.toShort()")) @DeprecatedSinceKotlin(warningSince = "1.5") @kotlin.internal.IntrinsicConstEvaluation public fun toShort(): Short = value.toShort() /** Returns the value of this character as a `Int`. */ @Deprecated("Conversion of Char to Number is deprecated. Use Char.code property instead.", ReplaceWith("this.code")) @DeprecatedSinceKotlin(warningSince = "1.5") @kotlin.internal.IntrinsicConstEvaluation public fun toInt(): Int = value /** Returns the value of this character as a `Long`. */ @Deprecated("Conversion of Char to Number is deprecated. Use Char.code property instead.", ReplaceWith("this.code.toLong()")) @DeprecatedSinceKotlin(warningSince = "1.5") @kotlin.internal.IntrinsicConstEvaluation public fun toLong(): Long = value.toLong() /** Returns the value of this character as a `Float`. */ @Deprecated("Conversion of Char to Number is deprecated. Use Char.code property instead.", ReplaceWith("this.code.toFloat()")) @DeprecatedSinceKotlin(warningSince = "1.5") @kotlin.internal.IntrinsicConstEvaluation public fun toFloat(): Float = value.toFloat() /** Returns the value of this character as a `Double`. */ @Deprecated("Conversion of Char to Number is deprecated. Use Char.code property instead.", ReplaceWith("this.code.toDouble()")) @DeprecatedSinceKotlin(warningSince = "1.5") @kotlin.internal.IntrinsicConstEvaluation public fun toDouble(): Double = value.toDouble() // TODO implicit usages of toString and valueOf must be covered in DCE @kotlin.internal.IntrinsicConstEvaluation @Suppress("JS_NAME_PROHIBITED_FOR_OVERRIDE") @JsName("toString") public override fun toString(): String { return js("String").fromCharCode(value).unsafeCast() } @kotlin.internal.IntrinsicConstEvaluation public override fun equals(other: Any?): Boolean { if (other !is Char) return false return this.value == other.value } public override fun hashCode(): Int = value public companion object { /** * The minimum value of a character code unit. */ @SinceKotlin("1.3") public const val MIN_VALUE: Char = '\u0000' /** * The maximum value of a character code unit. */ @SinceKotlin("1.3") public const val MAX_VALUE: Char = '\uFFFF' /** * The minimum value of a Unicode high-surrogate code unit. */ public const val MIN_HIGH_SURROGATE: Char = '\uD800' /** * The maximum value of a Unicode high-surrogate code unit. */ public const val MAX_HIGH_SURROGATE: Char = '\uDBFF' /** * The minimum value of a Unicode low-surrogate code unit. */ public const val MIN_LOW_SURROGATE: Char = '\uDC00' /** * The maximum value of a Unicode low-surrogate code unit. */ public const val MAX_LOW_SURROGATE: Char = '\uDFFF' /** * The minimum value of a Unicode surrogate code unit. */ public const val MIN_SURROGATE: Char = MIN_HIGH_SURROGATE /** * The maximum value of a Unicode surrogate code unit. */ public const val MAX_SURROGATE: Char = MAX_LOW_SURROGATE /** * The number of bytes used to represent a Char in a binary form. */ @SinceKotlin("1.3") public const val SIZE_BYTES: Int = 2 /** * The number of bits used to represent a Char in a binary form. */ @SinceKotlin("1.3") public const val SIZE_BITS: Int = 16 } }