morethantext-web/src/morethantext/fieldtype/static_string.rs

51 lines
1.0 KiB
Rust
Raw Normal View History

2022-08-12 18:57:57 -04:00
use crate::morethantext::error::MTTError;
use std::fmt;
pub struct StaticString {
data: String,
}
impl StaticString {
2022-08-12 18:57:57 -04:00
pub fn new<S>(name: S) -> Result<Self, MTTError>
2022-07-24 22:36:08 -04:00
where
S: Into<String>,
{
2022-08-12 18:57:57 -04:00
Ok(Self { data: name.into() })
}
}
impl fmt::Display for StaticString {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(f, "{}", &self.data)
}
}
2022-07-24 23:11:33 -04:00
#[cfg(test)]
mod creation {
2022-07-22 20:34:50 -04:00
use super::*;
#[test]
fn new_accepts_str() {
2022-07-24 22:36:08 -04:00
let data = "some data";
2022-08-12 18:57:57 -04:00
let field = StaticString::new(data).unwrap();
2022-07-24 22:36:08 -04:00
assert!(
field.to_string() == data,
"\n\nGot: {}\nWant: {}",
field.to_string(),
data
);
2022-07-22 20:34:50 -04:00
}
#[test]
fn new_accepts_string() {
2022-07-24 22:36:08 -04:00
let data = "actual string";
2022-08-12 18:57:57 -04:00
let field = StaticString::new(data.to_string()).unwrap();
assert!(
2022-07-24 22:36:08 -04:00
field.to_string() == data,
"\n\nGot: {}\nWant: {}",
field.to_string(),
data
);
}
}