1#[cfg(feature = "python")]
2use pyo3::prelude::*;
3
4use serde::{Deserialize, Serialize};
5use strum::Display;
6
7#[cfg_attr(feature = "python", pyclass(str, module = "asic_rs"))]
8#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Display)]
9pub enum MessageSeverity {
10 Error,
11 Warning,
12 Info,
13}
14
15#[cfg_attr(feature = "python", pyclass(get_all, module = "asic_rs"))]
16#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
17pub struct MinerMessage {
18 pub timestamp: u32,
20 pub code: u64,
23 pub message: String,
25 pub severity: MessageSeverity,
27}
28
29impl MinerMessage {
30 pub fn new(timestamp: u32, code: u64, message: String, severity: MessageSeverity) -> Self {
31 Self {
32 timestamp,
33 code,
34 message,
35 severity,
36 }
37 }
38}