Source code for council.contexts._composite_message_collection
from typing import Iterable, List
from ._chat_message import ChatMessage
from ._message_collection import MessageCollection
[docs]
class CompositeMessageCollection(MessageCollection):
"""
Wraps multiple :class:`MessageCollection` as one.
"""
_collections: List[MessageCollection]
def __init__(self, collections: List[MessageCollection]):
self._collections = collections
@property
def messages(self) -> Iterable[ChatMessage]:
for collection in self._collections:
for message in collection.messages:
yield message
@property
def reversed(self) -> Iterable[ChatMessage]:
for collection in reversed(self._collections):
for message in collection.reversed:
yield message