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. """ def __init__(self, collections: List[MessageCollection]) -> None: self._collections: List[MessageCollection] = collections @property def messages(self) -> Iterable[ChatMessage]: for collection in self._collections: yield from collection.messages @property def reversed(self) -> Iterable[ChatMessage]: for collection in reversed(self._collections): yield from collection.reversed