melobot.protocols.console.adapter.echo 源代码

from __future__ import annotations

from typing_extensions import Any, Generic

from melobot.adapter import Echo as RootEcho

from ..const import PROTOCOL_IDENTIFIER
from ..io.model import EchoDataT


[文档] class Echo(RootEcho, Generic[EchoDataT]): def __init__(self, data: EchoDataT) -> None: super().__init__(protocol=PROTOCOL_IDENTIFIER) self.type = data.type self.raw = data self.content = data.content def __repr__(self) -> str: return f"{self.__class__.__name__}(type={self.type})" def result(self) -> Any: if self.content is None: raise ValueError("回应中的响应内容为空") return self.content @classmethod def resolve(cls, data: EchoDataT) -> Echo: match data.type: case _: return cls(data)