#[derive(Debug, Clone, PartialEq, PartialOrd)]
pub struct Code {
code_space: Option<String>,
value: String,
}
impl Code {
pub fn new(value: impl Into<String>) -> Self {
Self {
code_space: None,
value: value.into(),
}
}
pub fn with_code_space(code_space: impl Into<String>, value: impl Into<String>) -> Self {
Self {
code_space: Some(code_space.into()),
value: value.into(),
}
}
pub fn from_parts(code_space: Option<impl Into<String>>, value: impl Into<String>) -> Self {
Self {
code_space: code_space.map(Into::into),
value: value.into(),
}
}
pub fn value(&self) -> &str {
&self.value
}
pub fn code_space(&self) -> Option<&str> {
self.code_space.as_deref()
}
}