1use serde::{Deserialize, Serialize};
2
3#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq)]
5#[serde(rename_all = "snake_case")]
6pub enum ApiResponseStatus {
7 Accepted,
8 Running,
9 Completed,
10 Failed,
11 Cancelled,
12 NotFound,
13 Error,
14}
15
16#[derive(Serialize, Deserialize, Debug, Clone)]
18pub struct MiningRequest {
19 pub job_id: String,
20 pub mining_hash: String,
22 pub distance_threshold: String,
24 pub nonce_start: String,
26 pub nonce_end: String,
28}
29
30#[derive(Serialize, Deserialize, Debug, Clone)]
32pub struct MiningResponse {
33 pub status: ApiResponseStatus,
34 pub job_id: String,
35 #[serde(skip_serializing_if = "Option::is_none")]
36 pub message: Option<String>,
37}
38
39#[derive(Serialize, Deserialize, Debug, Clone)]
41pub struct MiningResult {
42 pub status: ApiResponseStatus,
43 pub job_id: String,
44 pub nonce: Option<String>,
46 pub work: Option<String>,
49 pub hash_count: u64,
50 pub elapsed_time: f64,
51}