#include namespace torch::distributed::rpc { PythonResp::PythonResp(SerializedPyObj&& serializedPyObj) : serializedPyObj_(std::move(serializedPyObj)) {} c10::intrusive_ptr PythonResp::toMessageImpl() && { auto payload = std::vector( serializedPyObj_.payload_.begin(), serializedPyObj_.payload_.end()); return c10::make_intrusive( std::move(payload), std::move(serializedPyObj_.tensors_), MessageType::PYTHON_RET); } std::unique_ptr PythonResp::fromMessage(const Message& message) { std::string payload(message.payload().begin(), message.payload().end()); std::vector tensors = message.tensors(); SerializedPyObj serializedPyObj(std::move(payload), std::move(tensors)); return std::make_unique(std::move(serializedPyObj)); } const SerializedPyObj& PythonResp::serializedPyObj() const { return serializedPyObj_; } } // namespace torch::distributed::rpc