ForcePilot/backend/package/yuxi/gateway/protocol/frames.py

37 lines
753 B
Python
Raw Normal View History

from __future__ import annotations
from typing import TYPE_CHECKING, Any, Literal
from pydantic import BaseModel, Field
if TYPE_CHECKING:
from yuxi.gateway.protocol.errors import ErrorDetail
class RequestFrame(BaseModel):
type: Literal["req"] = "req"
id: str
method: str
params: dict[str, Any] = Field(default_factory=dict)
class ResponseFrame(BaseModel):
type: Literal["res"] = "res"
id: str
ok: bool
payload: Any = None
error: ErrorDetail | None = None
class EventFrame(BaseModel):
type: Literal["event"] = "event"
event: str
payload: Any = None
seq: int = 0
state_version: int = 0
from yuxi.gateway.protocol.errors import ErrorDetail # noqa: E402
ResponseFrame.model_rebuild()