checkpoint
This commit is contained in:
@@ -1,4 +1,3 @@
|
||||
use std::hash::{Hash, Hasher};
|
||||
use hash2::Hash2;
|
||||
|
||||
#[derive(Hash2)]
|
||||
@@ -185,3 +184,33 @@ fn test_generic_enum() {
|
||||
let _ = hash_value(&e2);
|
||||
let _ = hash_value(&e3);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_cow_tuple_slice() {
|
||||
use std::borrow::Cow;
|
||||
|
||||
// Test Cow<[T]> where T is a tuple
|
||||
let data = vec![("key1", 1u32), ("key2", 2u32)];
|
||||
let cow_borrowed: Cow<[(&str, u32)]> = Cow::Borrowed(&data);
|
||||
let cow_owned: Cow<[(&str, u32)]> = Cow::Owned(data.clone());
|
||||
|
||||
let hash1 = hash_value(&cow_borrowed);
|
||||
let hash2 = hash_value(&cow_owned);
|
||||
assert_eq!(hash1, hash2, "Borrowed and owned Cow should hash the same");
|
||||
|
||||
// Test with nested Option
|
||||
let with_option: Option<Cow<[(&str, u32)]>> = Some(Cow::Borrowed(&data));
|
||||
let _ = hash_value(&with_option);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_cow_str() {
|
||||
use std::borrow::Cow;
|
||||
|
||||
let borrowed: Cow<str> = Cow::Borrowed("hello");
|
||||
let owned: Cow<str> = Cow::Owned(String::from("hello"));
|
||||
|
||||
let hash1 = hash_value(&borrowed);
|
||||
let hash2 = hash_value(&owned);
|
||||
assert_eq!(hash1, hash2, "Borrowed and owned str Cow should hash the same");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user