mirror of
https://github.com/mamoe/mirai.git
synced 2025-03-13 06:30:13 +08:00
Introduce derived types of MultiPacket
This commit is contained in:
parent
6a85769e0d
commit
26c4d530ba
@ -29,8 +29,19 @@ object NoPacket : Packet {
|
||||
/**
|
||||
* PacketFactory 可以一次解析多个包出来. 它们将会被分别广播.
|
||||
*/
|
||||
open class MultiPacket<P : Packet>(internal val delegate: List<P>) : List<P> by delegate, Packet {
|
||||
interface MultiPacket<out P : Packet> : Packet, Iterable<P>
|
||||
|
||||
class MultiPacketByIterable<out P : Packet>(internal val delegate: Iterable<P>) : MultiPacket<P>,
|
||||
Iterable<P> by delegate {
|
||||
override fun toString(): String {
|
||||
return "MultiPacket<${this.firstOrNull()?.let { it::class.simpleName } ?: "?"}>"
|
||||
return "MultiPacket"
|
||||
}
|
||||
}
|
||||
|
||||
class MultiPacketBySequence<out P : Packet>(internal val delegate: Sequence<P>) : MultiPacket<P> {
|
||||
override operator fun iterator(): Iterator<P> = delegate.iterator()
|
||||
|
||||
override fun toString(): String {
|
||||
return "MultiPacket"
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user