lit_node_core/models/
resource_prefix.rs1use crate::constants::{
2 LIT_RESOURCE_PREFIX_ACC, LIT_RESOURCE_PREFIX_LA, LIT_RESOURCE_PREFIX_PD,
3 LIT_RESOURCE_PREFIX_PKP,
4};
5use std::fmt;
6use std::str::FromStr;
7
8#[derive(Clone, Copy, Debug, PartialEq, Eq)]
9#[allow(clippy::upper_case_acronyms)]
10pub enum LitResourcePrefix {
11 ACC,
12 PKP,
13 LA,
14 PD,
15}
16
17impl fmt::Display for LitResourcePrefix {
18 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
19 match self {
20 Self::ACC => write!(f, "{}", LIT_RESOURCE_PREFIX_ACC),
21 Self::PKP => write!(f, "{}", LIT_RESOURCE_PREFIX_PKP),
22 Self::LA => write!(f, "{}", LIT_RESOURCE_PREFIX_LA),
23 Self::PD => write!(f, "{}", LIT_RESOURCE_PREFIX_PD),
24 }
25 }
26}
27
28#[derive(Debug, PartialEq, Eq)]
29pub struct ParseLitResourcePrefixError;
30
31impl FromStr for LitResourcePrefix {
32 type Err = ParseLitResourcePrefixError;
33
34 fn from_str(s: &str) -> Result<Self, Self::Err> {
35 match s {
36 LIT_RESOURCE_PREFIX_ACC => Ok(Self::ACC),
37 LIT_RESOURCE_PREFIX_PKP => Ok(Self::PKP),
38 LIT_RESOURCE_PREFIX_LA => Ok(Self::LA),
39 LIT_RESOURCE_PREFIX_PD => Ok(Self::PD),
40 _ => Err(ParseLitResourcePrefixError),
41 }
42 }
43}