mirror of
https://github.com/mamoe/mirai.git
synced 2025-03-13 06:30:13 +08:00
Improve performance of MessageChainBuilder.add
and .addAll
This commit is contained in:
parent
482b62c0c3
commit
0ebf656c20
@ -97,25 +97,34 @@ public class MessageChainBuilder private constructor(
|
||||
return when (element) {
|
||||
// is ConstrainSingle -> container.add(element)
|
||||
is SingleMessage -> container.add(element) // no need to constrain
|
||||
is Iterable<*> -> this.addAll(element.toMessageChain().asSequence())
|
||||
is MessageChain -> addAll(element)
|
||||
is Iterable<*> -> this.addAll(element.toMessageChain())
|
||||
else -> error("stub")
|
||||
}
|
||||
}
|
||||
|
||||
public override fun addAll(elements: Collection<SingleMessage>): Boolean {
|
||||
flushCache()
|
||||
return addAll(elements.asSequence())
|
||||
return addAll(elements.asIterable())
|
||||
}
|
||||
|
||||
public fun addAll(elements: Iterable<SingleMessage>): Boolean {
|
||||
flushCache()
|
||||
return addAll(elements.asSequence())
|
||||
var result = false
|
||||
for (item in elements) {
|
||||
if (add(item)) result = true
|
||||
}
|
||||
return result
|
||||
}
|
||||
|
||||
@JvmName("addAllFlatten") // erased generic type cause declaration clash
|
||||
public fun addAll(elements: Iterable<Message>): Boolean {
|
||||
flushCache()
|
||||
return addAll(elements.toMessageChain().asSequence())
|
||||
var result = false
|
||||
for (item in elements) {
|
||||
if (add(item)) result = true
|
||||
}
|
||||
return result
|
||||
}
|
||||
|
||||
@JvmSynthetic
|
||||
|
Loading…
Reference in New Issue
Block a user