SendableRPCResponse

public struct SendableRPCResponse<Result> : Sendable where Result : Sendable

RPCResponse と同じ挙動を持つ、Swift 6 言語モードの検査に対応した RPC 成功応答。

jsonrpc / id / result の意味、notification で nil が返ること、失敗時に SoraError が投げられることは RPCResponse と共通です。Result が Sendable な型で あれば、応答全体を actor 境界や Task の @Sendable closure を越えて受け渡せます (MediaChannel.sendableRPC(method:params:isNotificationRequest:timeout:) が返す型です)。

Result へ Decodable を要求しないのは、decode が SendableRPCMethodProtocol.Result の 制約 (RPCMethodProtocol の Result: Decodable) で成立し、この型自身は値の保持だけを 担うためです。Result が Sendable でない場合は Sendable へ準拠できません。

既存の RPCResponse の宣言と準拠は互換 API として変更していません。

  • JSON-RPC プロトコルのバージョン。

    Declaration

    Swift

    public let jsonrpc: String
  • id

    リクエストと対応する ID。

    Declaration

    Swift

    public let id: Int
  • リクエストが正常終了した場合の結果情報。

    Declaration

    Swift

    public let result: Result
  • RPC 成功応答を作成する。

    Declaration

    Swift

    public init(id: Int, result: Result)

    Parameters

    id

    リクエストと対応する ID。

    result

    RPC 呼び出しの結果。