[Review] Mirai code: rename CodableMessage.appendAsMiraiCode to appendMiraiCodeTo

This commit is contained in:
Him188 2021-01-07 21:05:36 +08:00
parent d4852ceb6f
commit 986ebd3c5c
11 changed files with 28 additions and 21 deletions

View File

@ -1,5 +1,5 @@
/*
* Copyright 2019-2020 Mamoe Technologies and contributors.
* Copyright 2019-2021 Mamoe Technologies and contributors.
*
* 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证.
* Use of this source code is governed by the GNU AGPLv3 license that can be found through the following link.
@ -30,9 +30,9 @@ public interface CodableMessage : Message {
/**
* 转换为 mirai .
*/
public fun toMiraiCode(): String = buildString { appendMiraiCode(this) }
public fun toMiraiCode(): String = buildString { appendMiraiCodeTo(this) }
// Using StringBuilder faster than direct plus objects
@MiraiExperimentalApi
public fun appendMiraiCode(builder: StringBuilder)
public fun appendMiraiCodeTo(builder: StringBuilder)
}

View File

@ -1,5 +1,5 @@
/*
* Copyright 2019-2020 Mamoe Technologies and contributors.
* Copyright 2019-2021 Mamoe Technologies and contributors.
*
* 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证.
* Use of this source code is governed by the GNU AGPLv3 license that can be found through the following link.
@ -9,6 +9,7 @@
@file:JvmMultifileClass
@file:JvmName("MiraiCode")
@file:Suppress("unused")
package net.mamoe.mirai.message.code
@ -24,9 +25,14 @@ import net.mamoe.mirai.utils.safeCast
@JvmOverloads
public fun String.parseMiraiCode(contact: Contact? = null): MessageChain = parseMiraiCodeImpl(contact)
public fun <T : Message> Iterable<T>.toMiraiCode(): String = iterator().toMiraiCode()
public fun <T : Message> Iterator<T>.toMiraiCode(): String = buildString {
public fun Iterable<Message>.toMiraiCode(): String = iterator().toMiraiCode()
public fun Sequence<Message>.toMiraiCode(): String = iterator().toMiraiCode()
public fun Array<out Message>.toMiraiCode(): String = iterator().toMiraiCode()
public fun Iterator<Message>.toMiraiCode(): String = buildString {
this@toMiraiCode.forEach {
it.safeCast<CodableMessage>()?.appendMiraiCode(this)
it.safeCast<CodableMessage>()?.appendMiraiCodeTo(this)
}
}
@Suppress("EXTENSION_SHADOWED_BY_MEMBER")// for better Java API.
public fun CodableMessage.toMiraiCode(): String = this.toMiraiCode() // member function

View File

@ -51,7 +51,7 @@ public data class At(
}
@MiraiExperimentalApi
override fun appendMiraiCode(builder: StringBuilder) {
override fun appendMiraiCodeTo(builder: StringBuilder) {
builder.append("[mirai:at:").append(target).append(']')
}

View File

@ -49,7 +49,7 @@ public object AtAll :
}
@MiraiExperimentalApi
override fun appendMiraiCode(builder: StringBuilder) {
override fun appendMiraiCodeTo(builder: StringBuilder) {
builder.append(toString())
}

View File

@ -33,7 +33,7 @@ public data class Face(public val id: Int) : // used in delegation
public override fun contentToString(): String = names.getOrElse(id) { "[表情]" }
@MiraiExperimentalApi
override fun appendMiraiCode(builder: StringBuilder) {
override fun appendMiraiCodeTo(builder: StringBuilder) {
builder.append("[mirai:face:").append(id).append(']')
}

View File

@ -172,7 +172,7 @@ public data class PokeMessage @MiraiInternalApi constructor(
private val stringValue = "[mirai:poke:$name,$pokeType,$id]"
@MiraiExperimentalApi
override fun appendMiraiCode(builder: StringBuilder) {
override fun appendMiraiCodeTo(builder: StringBuilder) {
builder.append("[mirai:poke:").appendAsMiraiCode(name)
.append(',').append(pokeType).append(',').append(id)
.append(']')
@ -295,7 +295,7 @@ public data class VipFace @MiraiInternalApi constructor(
}
@MiraiExperimentalApi
override fun appendMiraiCode(builder: StringBuilder) {
override fun appendMiraiCodeTo(builder: StringBuilder) {
builder.append(stringValue)
}
@ -350,7 +350,7 @@ public data class FlashImage(
private val stringValue: String by lazy(LazyThreadSafetyMode.NONE) { "[mirai:flash:${image.imageId}]" }
@MiraiExperimentalApi
override fun appendMiraiCode(builder: StringBuilder) {
override fun appendMiraiCodeTo(builder: StringBuilder) {
builder.append(stringValue)
}

View File

@ -219,7 +219,7 @@ public sealed class AbstractImage : Image {
final override fun toString(): String = _stringValue!!
final override fun contentToString(): String = "[图片]"
override fun appendMiraiCode(builder: StringBuilder) {
override fun appendMiraiCodeTo(builder: StringBuilder) {
builder.append("[mirai:image:").append(imageId).append("]")
}
}

View File

@ -98,8 +98,8 @@ public interface MessageChain : Message, List<SingleMessage>, RandomAccess, Coda
asSequence().any { key.safeCast.invoke(it) != null }
@MiraiExperimentalApi
override fun appendMiraiCode(builder: StringBuilder) {
forEach { it.safeCast<CodableMessage>()?.appendMiraiCode(builder) }
override fun appendMiraiCodeTo(builder: StringBuilder) {
forEach { it.safeCast<CodableMessage>()?.appendMiraiCodeTo(builder) }
}
@kotlinx.serialization.Serializer(MessageChain::class)
@ -171,7 +171,8 @@ public object EmptyMessageChain : MessageChain, Iterator<SingleMessage>, List<Si
override fun toMiraiCode(): String = ""
@MiraiExperimentalApi
override fun appendMiraiCode(builder: StringBuilder) {}
override fun appendMiraiCodeTo(builder: StringBuilder) {
}
}
// region accessors

View File

@ -36,7 +36,7 @@ public data class PlainText(
public override fun contentToString(): String = content
@MiraiExperimentalApi
override fun appendMiraiCode(builder: StringBuilder) {
override fun appendMiraiCodeTo(builder: StringBuilder) {
builder.appendAsMiraiCode(content)
}

View File

@ -105,7 +105,7 @@ public data class LightApp(override val content: String) : RichMessage, CodableM
public override fun toString(): String = "[mirai:app:$content]"
@MiraiExperimentalApi
override fun appendMiraiCode(builder: StringBuilder) {
override fun appendMiraiCodeTo(builder: StringBuilder) {
builder.append("[mirai:app:").appendAsMiraiCode(content).append(']')
}
}
@ -166,7 +166,7 @@ public interface ServiceMessage : RichMessage, CodableMessage {
public val serviceId: Int
@MiraiExperimentalApi
override fun appendMiraiCode(builder: StringBuilder) {
override fun appendMiraiCodeTo(builder: StringBuilder) {
builder.append("[mirai:service:").append(serviceId).append(',').appendAsMiraiCode(content).append(']')
}
}

View File

@ -199,7 +199,7 @@ internal abstract class AbstractImage : Image { // make sealed in 1.3.0 ?
final override fun contentToString(): String = "[图片]"
@MiraiExperimentalApi
override fun appendMiraiCode(builder: StringBuilder) {
override fun appendMiraiCodeTo(builder: StringBuilder) {
builder.append("[mirai:image:").append(imageId).append("]")
}
}