1pub fn mail(email: &str) -> bool {
2 let parts: Vec<&str> = email.split('@').collect();
3
4 if parts.len() != 2 {
5 return false;
6 }
7
8 let local_part = parts[0];
9 let domain_part = parts[1];
10
11 if local_part.is_empty() || domain_part.is_empty() {
12 return false;
13 }
14
15 if !domain_part.contains('.') {
16 return false;
17 }
18
19 let domain_chars: Vec<char> = domain_part.chars().collect();
20 if !domain_chars.first().unwrap().is_alphanumeric()
21 || !domain_chars.last().unwrap().is_alphanumeric()
22 {
23 return false;
24 }
25
26 true
27}