checkpoint

This commit is contained in:
Intege-rs
2026-02-03 04:05:38 -05:00
parent d99f1511eb
commit ab3a9fd713
3 changed files with 47 additions and 3 deletions

View File

@@ -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");
}