refactor check_trait function

This commit is contained in:
Jörn-Michael Miehe 2025-07-05 23:00:54 +00:00
parent f988c80854
commit 4ff1f34b08
3 changed files with 15 additions and 16 deletions

View file

@ -117,24 +117,22 @@ mod tests {
for input in inputs {
{
// check AliasID
let _ = AliasID(input.to_string()); // direct creation
let aid = AliasID::from(input.to_string());
check_trait(&input, &aid.0, "From<String>", "AliasID");
check_trait(&input, &aid.as_ref(), "AsRef<str>", "AliasID");
check_trait(&aid.0, input, "From<String>", "AliasID");
check_trait(aid.as_ref(), input, "AsRef<str>", "AliasID");
}
{
// check ShareID
let _ = ShareID(input.to_string()); // direct creation
let sid = ShareID::from(input.to_string());
check_trait(&input, &sid.0, "From<String>", "ShareID");
check_trait(&input, &sid.to_string(), "Display", "ShareID");
check_trait(&sid.0, input, "From<String>", "ShareID");
check_trait(sid.to_string(), input, "Display", "ShareID");
}
{
// check FileID
let fid = FileID(input.to_string()); // direct creation
check_trait(&input, &fid.to_string(), "Display", "FileID");
let fid = FileID(input.to_string());
check_trait(fid.to_string(), input, "Display", "FileID");
}
}
}

View file

@ -115,8 +115,8 @@ mod tests {
for uri_data in cases {
let uri = Uri(uri_data.to_string());
check_trait(&uri_data, &uri.to_string(), "Display", "Uri");
check_trait(&uri_data.as_bytes(), &uri.as_ref(), "AsRef<[u8]>", "Uri");
check_trait(uri.to_string(), uri_data, "Display", "Uri");
check_trait(uri.as_ref(), uri_data.as_bytes(), "AsRef<[u8]>", "Uri");
}
}
@ -137,7 +137,7 @@ mod tests {
for (good, expected) in cases {
let uri = Uri::from(good.to_string());
check_trait(&expected, &uri.0, "From<String>", "Uri");
check_trait(uri.0, expected, "From<String>", "Uri");
}
}
@ -159,7 +159,7 @@ mod tests {
for bad in cases {
let uri = Uri::from(bad.to_string());
check_trait(&bad, &uri.0, "From<String>", "Uri");
check_trait(uri.0, bad, "From<String>", "Uri");
}
}

View file

@ -6,14 +6,15 @@ use std::{fmt, io::Write};
use tempfile::NamedTempFile;
pub fn check_trait<E, A>(expected: &E, actual: &A, tr: &'static str, ty: &'static str)
pub fn check_trait<A, E>(actual: A, expected: E, tr: &str, ty: &str)
where
E: fmt::Debug + PartialEq<A>,
A: fmt::Debug,
A: fmt::Debug + PartialEq<E>,
E: fmt::Debug,
{
assert_eq!(
actual, expected,
"`impl {tr} for {ty}` expected: {:?}, actual: {:?}",
expected, actual,
"`impl {tr} for {ty}` expected: {expected:?}, actual: {actual:?}",
);
}