kellnr_common/
normalized_name.rs1use std::fmt;
2
3use crate::original_name::OriginalName;
4
5#[derive(Debug, PartialEq, Eq, Clone)]
8pub struct NormalizedName(String);
9
10impl NormalizedName {
11 pub fn from_unchecked(name: String) -> Self {
12 NormalizedName(name)
13 }
14
15 pub fn from_unchecked_str(name: &str) -> Self {
16 NormalizedName(name.to_owned())
17 }
18}
19
20impl From<OriginalName> for NormalizedName {
21 fn from(name: OriginalName) -> Self {
22 NormalizedName(name.to_lowercase())
23 }
24}
25
26impl From<&OriginalName> for NormalizedName {
27 fn from(name: &OriginalName) -> Self {
28 NormalizedName(name.to_lowercase())
29 }
30}
31
32impl fmt::Display for NormalizedName {
33 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
34 write!(f, "{}", self.0)
35 }
36}
37
38impl std::ops::Deref for NormalizedName {
39 type Target = String;
40
41 fn deref(&self) -> &Self::Target {
42 &self.0
43 }
44}