pub fn parse_date(s: &str) -> Result<Date, String>Expand description
Strictly parse a calendar date in YYYY-MM-DD format.
§Behavior
- Trims surrounding whitespace.
- Requires zero-padded year-month-day (e.g.,
2025-09-02). - Rejects datetime strings (e.g.,
2025-09-02 12:34:56) and other formats. - Validates real calendar dates (e.g., leap years).
§Arguments
s: The input string (typically from CLI).
§Returns
Ok(Date)on success.Err(String)with a short, user-friendly message otherwise (good for CLI).
§Examples
use linkleaf_core::validation::parse_date;
let d = parse_date("2025-01-03").unwrap();
assert_eq!(d.to_string(), "2025-01-03");use linkleaf_core::validation::parse_date;
assert!(parse_date("2025/01/03").is_err());
assert!(parse_date("2025-1-3").is_err()); // not zero-padded