From 2884f9fe4c7faf6c9fb89451ff8509ec167bb2df Mon Sep 17 00:00:00 2001 From: Lynnesbian Date: Sat, 28 Aug 2021 18:21:53 +1000 Subject: [PATCH] use SmartString properly --- src/files.rs | 2 +- src/findings.rs | 4 ++-- src/tests/mod.rs | 22 +++++++++++++++++----- 3 files changed, 20 insertions(+), 8 deletions(-) diff --git a/src/files.rs b/src/files.rs index ad93c65..e73be28 100644 --- a/src/files.rs +++ b/src/files.rs @@ -1,7 +1,7 @@ use crate::findings::{Findings, ScanError}; use crate::mime_db::MimeDb; use crate::parameters::ScanOpts; -use crate::MIMEDB; +use crate::{String, MIMEDB}; use std::collections::BTreeSet; use std::fs::File; diff --git a/src/findings.rs b/src/findings.rs index 94b48a0..842e004 100644 --- a/src/findings.rs +++ b/src/findings.rs @@ -37,8 +37,8 @@ impl serde::Serialize for Findings { } impl Findings { - pub fn recommended_extension(&self) -> Option { - mime_extension_lookup(self.mime.essence_str().into()).map(|extensions| extensions[0].clone()) + pub fn recommended_extension(&self) -> Option { + mime_extension_lookup(self.mime.essence_str().into()).map(|extensions| extensions[0].clone().into()) } } diff --git a/src/tests/mod.rs b/src/tests/mod.rs index 04c4fd8..ab596e4 100644 --- a/src/tests/mod.rs +++ b/src/tests/mod.rs @@ -66,19 +66,18 @@ fn detect_type() { /// Ensure that `mime_extension_lookup` works as expected, and that the set of extensions for JPEG, PNG, PDF, and ZIP /// contain "jpg", "png", "pdf", and "zip", respectively. fn recommend_ext() { - use std::string::String as StdString; assert!(mime_extension_lookup(IMAGE_JPEG.essence_str().into()) .unwrap() - .contains(&StdString::from("jpg"))); + .contains(&String::from("jpg"))); assert!(mime_extension_lookup(IMAGE_PNG.essence_str().into()) .unwrap() - .contains(&StdString::from("png"))); + .contains(&String::from("png"))); assert!(mime_extension_lookup(APPLICATION_PDF.essence_str().into()) .unwrap() - .contains(&StdString::from("pdf"))); + .contains(&String::from("pdf"))); assert!(mime_extension_lookup(application_zip().essence_str().into()) .unwrap() - .contains(&StdString::from("zip"))); + .contains(&String::from("zip"))); } #[test] @@ -463,3 +462,16 @@ fn verbosity() { assert_eq!(Parameters::parse_from(&["fif", flags]).default_verbosity(), level); } } + +#[test] +/// Ensures that smart strings don't deviate from std's Strings +fn validate_string_type() { + use fif::String as SmartString; + use std::string::String as StdString; + assert_eq!(SmartString::new(), StdString::new()); + assert_eq!(SmartString::from("smol"), StdString::from("smol")); + assert_eq!( + SmartString::from("A long and therefore heap-allocated string"), + StdString::from("A long and therefore heap-allocated string") + ); +}