mirror of https://github.com/KaiserY/trpl-zh-cn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
1.0 KiB
49 lines
1.0 KiB
3 years ago
|
#[derive(PartialEq, Debug)]
|
||
|
struct Shoe {
|
||
|
size: u32,
|
||
|
style: String,
|
||
|
}
|
||
|
|
||
|
fn shoes_in_size(shoes: Vec<Shoe>, shoe_size: u32) -> Vec<Shoe> {
|
||
|
shoes.into_iter().filter(|s| s.size == shoe_size).collect()
|
||
|
}
|
||
|
|
||
|
#[cfg(test)]
|
||
|
mod tests {
|
||
|
use super::*;
|
||
|
|
||
|
#[test]
|
||
|
fn filters_by_size() {
|
||
|
let shoes = vec![
|
||
|
Shoe {
|
||
|
size: 10,
|
||
|
style: String::from("sneaker"),
|
||
|
},
|
||
|
Shoe {
|
||
|
size: 13,
|
||
|
style: String::from("sandal"),
|
||
|
},
|
||
|
Shoe {
|
||
|
size: 10,
|
||
|
style: String::from("boot"),
|
||
|
},
|
||
|
];
|
||
|
|
||
|
let in_my_size = shoes_in_size(shoes, 10);
|
||
|
|
||
|
assert_eq!(
|
||
|
in_my_size,
|
||
|
vec![
|
||
|
Shoe {
|
||
|
size: 10,
|
||
|
style: String::from("sneaker")
|
||
|
},
|
||
|
Shoe {
|
||
|
size: 10,
|
||
|
style: String::from("boot")
|
||
|
},
|
||
|
]
|
||
|
);
|
||
|
}
|
||
|
}
|