42 lines
840 B
Rust
42 lines
840 B
Rust
use std::fmt;
|
|
|
|
mod static_string;
|
|
|
|
use static_string::StaticString;
|
|
|
|
pub enum FieldType {
|
|
StaticString(StaticString),
|
|
}
|
|
|
|
impl fmt::Display for FieldType {
|
|
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
|
match self {
|
|
FieldType::StaticString(data) => write!(f, "{}", data),
|
|
}
|
|
}
|
|
}
|
|
|
|
impl From<StaticString> for FieldType {
|
|
fn from(data: StaticString) -> Self {
|
|
FieldType::StaticString(data)
|
|
}
|
|
}
|
|
|
|
#[cfg(test)]
|
|
mod converstion {
|
|
use super::*;
|
|
|
|
#[test]
|
|
fn from_static_string() {
|
|
let data = "a static string";
|
|
let field = StaticString::new(data);
|
|
let ftype: FieldType = field.into();
|
|
assert!(
|
|
ftype.to_string() == data,
|
|
"\n\nGot: {}\nWant: {}",
|
|
ftype.to_string(),
|
|
data
|
|
);
|
|
}
|
|
}
|