asic_rs/data/
message.rs

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    /// The time this message was generated or occurred
19    pub timestamp: u32,
20    /// The message code
21    /// May be set to 0 if no code is set by the device
22    pub code: u64,
23    /// The human-readable message being relayed by the device
24    pub message: String,
25    /// The severity of this message
26    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}