about summary refs log tree commit diff
path: root/src/description.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/description.rs')
-rw-r--r--src/description.rs93
1 files changed, 0 insertions, 93 deletions
diff --git a/src/description.rs b/src/description.rs
deleted file mode 100644
index 48c98d76e051..000000000000
--- a/src/description.rs
+++ /dev/null
@@ -1,93 +0,0 @@
-use crate::entities::Describe;
-
-pub fn list_to_sentence(lst: &[String]) -> String {
-    let mut buf = String::with_capacity(
-        lst.iter()
-            .map(|e| e.len() + 2usize /* ", " */)
-            .sum::<usize>()
-            + if lst.len() >= 3 {
-                3usize /* "and" */
-            } else {
-                0usize
-            },
-    );
-
-    match lst.len() {
-        0 => {}
-        1 => buf.push_str(&lst[0]),
-        2 => {
-            buf.push_str(&lst[0]);
-            buf.push_str(" and ");
-            buf.push_str(&lst[1]);
-        }
-        _ => {
-            for desc in &lst[..lst.len() - 1] {
-                buf.push_str(desc);
-                buf.push_str(", ");
-            }
-            buf.push_str("and ");
-            buf.push_str(&lst[lst.len() - 1]);
-        }
-    }
-
-    buf
-}
-
-pub fn describe_list<A: Describe>(lst: &[A]) -> String {
-    list_to_sentence(
-        &lst.iter().map(|e| e.description()).collect::<Vec<String>>(),
-    )
-}
-
-#[cfg(test)]
-mod tests {
-    use super::*;
-    use proptest::prelude::*;
-    use proptest_derive::Arbitrary;
-
-    #[derive(Debug, Arbitrary)]
-    struct Description(String);
-
-    impl Describe for Description {
-        fn description(&self) -> String {
-            self.0.clone()
-        }
-    }
-
-    proptest! {
-        #[test]
-        fn test_describe_list_includes_all_descriptions(
-            descriptions: Vec<Description>
-        ) {
-            let res = describe_list(&descriptions);
-            for Description(desc) in descriptions {
-                assert!(res.contains(&desc));
-            }
-        }
-    }
-
-    #[test]
-    fn test_describe_list() {
-        assert_eq!(
-            describe_list(&[Description("one".to_string())]),
-            "one".to_string()
-        );
-
-        assert_eq!(
-            describe_list(&[
-                Description("one".to_string()),
-                Description("two".to_string())
-            ]),
-            "one and two".to_string()
-        );
-
-        assert_eq!(
-            describe_list(&[
-                Description("one".to_string()),
-                Description("two".to_string()),
-                Description("three".to_string())
-            ]),
-            "one, two, and three".to_string()
-        );
-    }
-}