mirror of
https://github.com/KaiserY/trpl-zh-cn
synced 2025-05-05 04:58:03 +08:00
49 lines
1.0 KiB
Rust
49 lines
1.0 KiB
Rust
|
#[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")
|
||
|
},
|
||
|
]
|
||
|
);
|
||
|
}
|
||
|
}
|