made_core/entities/
agent_usage_kind.rs1use serde::{Deserialize, Serialize};
2
3use crate::DomainError;
4
5#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
7#[serde(rename_all = "snake_case")]
8pub enum AgentUsageKind {
9 Measured,
10 Estimated,
11 Unavailable,
12}
13
14impl TryFrom<&str> for AgentUsageKind {
15 type Error = DomainError;
16 fn try_from(value: &str) -> Result<Self, Self::Error> {
17 match value {
18 "measured" => Ok(Self::Measured),
19 "estimated" => Ok(Self::Estimated),
20 "unavailable" => Ok(Self::Unavailable),
21 _ => Err(DomainError::InvariantViolated {
22 reason: "unsupported agent usage kind",
23 }),
24 }
25 }
26}