Cookies “为什么可以?”;铁锈饼干::CookieJar“;通过str类型获取值
我知道底层数据结构是一个Cookies “为什么可以?”;铁锈饼干::CookieJar“;通过str类型获取值,cookies,rust,Cookies,Rust,我知道底层数据结构是一个HashSet,但是为什么get方法可以使用&str类型而不是cookie结构呢 cargo.toml [dependencies] cookie = "0.14" src/main.rs 使用cookie::{cookie,CookieJar}; fn main(){ 让mut-jar=CookieJar::new(); 添加(Cookie::new(“a”,“one”); 添加(Cookie::new(“b”,“two”); assert_eq!
HashSet
,但是为什么get
方法可以使用&str
类型而不是cookie结构呢
cargo.toml
[dependencies]
cookie = "0.14"
src/main.rs
使用cookie::{cookie,CookieJar};
fn main(){
让mut-jar=CookieJar::new();
添加(Cookie::new(“a”,“one”);
添加(Cookie::new(“b”,“two”);
assert_eq!(jar.get(“a”).map(| c | c.value()),Some(“one”);
assert_eq!(jar.get(“b”).map(| c | c.value()),Some(“two”);
移除(Cookie::named(“b”);
断言!(jar.get(“b”).is_none());
}
cookie rs的作者以及
下面是一个模仿相同行为的示例:
使用标准::借用::借用;
使用std::hash::{hash,Hasher};
使用std::collections::HashSet;
#[导出(调试,Eq)]
结构Cookie{
fn eq(&self,其他:&Cookie)->bool{
self.name==other.name
}
}
请借给Cookie,签名是。在阅读了源代码之后,我不明白为什么get方法可以使用str来获取HashMap@hewcHashSet::get
返回一个值,该值在借用时等于并散列为与参数相同的值。是Cookie
的包装器,其全部目的是仅基于Cookie名称进行散列和比较,从而允许按名称从集合中检索Cookie。