use serde::{Deserialize, Serialize};
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "snake_case")]
pub enum ApiResponseStatus {
Accepted,
Running,
Completed,
Failed,
Cancelled,
NotFound,
Error,
}
#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct MiningRequest {
pub job_id: String,
pub mining_hash: String,
pub distance_threshold: String,
pub nonce_start: String,
pub nonce_end: String,
}
#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct MiningResponse {
pub status: ApiResponseStatus,
pub job_id: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
}
#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct MiningResult {
pub status: ApiResponseStatus,
pub job_id: String,
pub nonce: Option<String>,
pub work: Option<String>,
pub hash_count: u64,
pub elapsed_time: f64,
}