Deprecate CombinedMessage.constructor for future plan

This commit is contained in:
Him188 2020-04-05 15:32:32 +08:00
parent 00522f4113
commit 3575e802c7

View File

@ -12,6 +12,8 @@
package net.mamoe.mirai.message.data
import net.mamoe.mirai.utils.MiraiExperimentalAPI
import net.mamoe.mirai.utils.MiraiInternalAPI
import kotlin.jvm.JvmMultifileClass
import kotlin.jvm.JvmName
@ -25,12 +27,17 @@ import kotlin.jvm.JvmName
*
* Left-biased list
*/
class CombinedMessage(
class CombinedMessage
@Deprecated(message = "use Message.plus", level = DeprecationLevel.ERROR)
@MiraiInternalAPI("CombinedMessage 构造器可能会在将来被改动") constructor(
@MiraiExperimentalAPI("CombinedMessage.left 可能会在将来被改动")
val left: Message,
@MiraiExperimentalAPI("CombinedMessage.tail 可能会在将来被改动")
val tail: Message
) : Iterable<Message>, Message {
// 不要把它用作 local function, 会编译错误
@OptIn(MiraiExperimentalAPI::class)
private suspend fun SequenceScope<Message>.yieldCombinedOrElements(message: Message) {
when (message) {
is CombinedMessage -> {
@ -68,10 +75,16 @@ class CombinedMessage(
return asSequence().iterator()
}
@OptIn(MiraiExperimentalAPI::class)
override fun toString(): String {
return tail.toString() + left.toString()
}
override fun contentToString(): String {
return toString()
}
@OptIn(MiraiExperimentalAPI::class)
fun isFlat(): Boolean {
return tail is SingleMessage && left is SingleMessage
}