node/rpc/
rpc_impls.rs

1use crate::external_snark_worker::{ExternalSnarkWorker, ExternalSnarkWorkerState};
2
3use super::{RpcSnarkWorker, RpcSnarkWorkerStatus};
4
5impl From<ExternalSnarkWorker> for RpcSnarkWorker {
6    fn from(source: ExternalSnarkWorker) -> Self {
7        Self {
8            time: Some(source.timestamp),
9            id: Some("single".into()),
10            status: source.state.into(),
11        }
12    }
13}
14
15impl From<ExternalSnarkWorkerState> for RpcSnarkWorkerStatus {
16    fn from(source: ExternalSnarkWorkerState) -> Self {
17        match source {
18            ExternalSnarkWorkerState::None => RpcSnarkWorkerStatus::None,
19            ExternalSnarkWorkerState::Starting => RpcSnarkWorkerStatus::Starting,
20            ExternalSnarkWorkerState::Idle => RpcSnarkWorkerStatus::Idle,
21            ExternalSnarkWorkerState::Working(job_id, summary) => {
22                RpcSnarkWorkerStatus::Working { job_id, summary }
23            }
24            ExternalSnarkWorkerState::WorkReady(job_id, _) => {
25                RpcSnarkWorkerStatus::WorkReady { job_id }
26            }
27            ExternalSnarkWorkerState::WorkError(job_id, error) => {
28                RpcSnarkWorkerStatus::WorkError { job_id, error }
29            }
30            ExternalSnarkWorkerState::Cancelling(job_id) => {
31                RpcSnarkWorkerStatus::Cancelling { job_id }
32            }
33            ExternalSnarkWorkerState::Cancelled(job_id) => {
34                RpcSnarkWorkerStatus::Cancelled { job_id }
35            }
36            ExternalSnarkWorkerState::Killing => RpcSnarkWorkerStatus::Killing,
37            ExternalSnarkWorkerState::Error(error, permanent) => {
38                RpcSnarkWorkerStatus::Error { error, permanent }
39            }
40        }
41    }
42}