in azure-kusto-data/src/types.rs [91:113]
fn from_str(s: &str) -> Result<Self, Self::Err> {
KUSTO_DURATION_REGEX
.captures(s)
.map(|captures| {
let neg = match captures.name("neg") {
None => 1,
Some(_) => -1,
};
let days = parse_regex_segment(&captures, "days");
let hours = parse_regex_segment(&captures, "hours");
let minutes = parse_regex_segment(&captures, "minutes");
let seconds = parse_regex_segment(&captures, "seconds");
let nanos = parse_regex_segment(&captures, "nanos");
let duration = neg
* (Duration::days(days)
+ Duration::hours(hours)
+ Duration::minutes(minutes)
+ Duration::seconds(seconds)
+ Duration::nanoseconds(nanos * 100)); // Ticks
Self(duration)
})
.ok_or_else(|| InvalidArgumentError::InvalidDuration(s.to_string()).into())
}