2022-08-12 18:57:57 -04:00
|
|
|
use crate::morethantext::error::MTTError;
|
2022-07-20 09:31:21 -04:00
|
|
|
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() })
|
2022-07-20 09:31:21 -04:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
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)]
|
2022-08-03 08:23:00 -04:00
|
|
|
mod creation {
|
2022-07-22 20:34:50 -04:00
|
|
|
use super::*;
|
|
|
|
|
|
|
|
#[test]
|
2022-08-03 08:23:00 -04:00
|
|
|
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
|
|
|
}
|
2022-07-20 09:31:21 -04:00
|
|
|
|
|
|
|
#[test]
|
2022-08-03 08:23:00 -04:00
|
|
|
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();
|
2022-07-20 09:31:21 -04:00
|
|
|
assert!(
|
2022-07-24 22:36:08 -04:00
|
|
|
field.to_string() == data,
|
|
|
|
"\n\nGot: {}\nWant: {}",
|
|
|
|
field.to_string(),
|
|
|
|
data
|
2022-07-20 09:31:21 -04:00
|
|
|
);
|
|
|
|
}
|
|
|
|
}
|