MCPcopy Create free account
hub / github.com/dtolnay/rustversion / try_parse

Function try_parse

src/date.rs:31–50  ·  view source on GitHub ↗
(iter: Iter)

Source from the content-addressed store, hash-verified

29}
30
31fn try_parse(iter: Iter) -> Result<Date, ()> {
32 let year = token::parse_literal(iter).map_err(drop)?;
33 token::parse_punct(iter, '-').map_err(drop)?;
34 let month = token::parse_literal(iter).map_err(drop)?;
35 token::parse_punct(iter, '-').map_err(drop)?;
36 let day = token::parse_literal(iter).map_err(drop)?;
37
38 let year = year.to_string().parse::<u64>().map_err(drop)?;
39 let month = month.to_string().parse::<u64>().map_err(drop)?;
40 let day = day.to_string().parse::<u64>().map_err(drop)?;
41 if year >= 3000 || month > 12 || day > 31 {
42 return Err(());
43 }
44
45 Ok(Date {
46 year: year as u16,
47 month: month as u8,
48 day: day as u8,
49 })
50}

Callers 1

parseFunction · 0.70

Calls 2

parse_literalFunction · 0.85
parse_punctFunction · 0.85

Tested by

no test coverage detected