#[inline]
pub(crate) const fn is_a_key_leading_char(ch: char) -> bool {
ch.is_ascii_lowercase() || ch == '_'
}
#[inline]
pub(crate) const fn is_a_key_char(ch: char) -> bool {
is_a_key_leading_char(ch) || ch.is_ascii_digit() || ch == '-'
}
pub(crate) const fn is_annotation_value_component(ch: char) -> bool {
ch.is_ascii_digit() || ch.is_ascii_alphabetic()
}
#[inline]
pub(crate) const fn is_tz_leading_char(ch: char) -> bool {
ch.is_ascii_alphabetic() || ch == '_' || ch == '.'
}
#[inline]
pub(crate) const fn is_tz_char(ch: char) -> bool {
is_tz_leading_char(ch) || ch.is_ascii_digit() || ch == '-' || ch == '+'
}
#[inline]
pub(crate) const fn is_tz_name_separator(ch: char) -> bool {
ch == '/'
}
#[inline]
pub(crate) const fn is_ascii_sign(ch: char) -> bool {
ch == '+' || ch == '-'
}
#[inline]
pub(crate) const fn is_sign(ch: char) -> bool {
is_ascii_sign(ch) || ch == '\u{2212}'
}
#[inline]
pub(crate) const fn is_time_separator(ch: char) -> bool {
ch == ':'
}
#[inline]
pub(crate) const fn is_time_designator(ch: char) -> bool {
ch == 'T' || ch == 't'
}
#[inline]
pub(crate) const fn is_space(ch: char) -> bool {
ch == ' '
}
#[inline]
pub(crate) const fn is_date_time_separator(ch: char) -> bool {
is_time_designator(ch) || is_space(ch)
}
#[inline]
pub(crate) const fn is_utc_designator(ch: char) -> bool {
ch == 'Z' || ch == 'z'
}
#[inline]
#[cfg(feature = "duration")]
pub(crate) const fn is_duration_designator(ch: char) -> bool {
ch == 'P' || ch == 'p'
}
#[inline]
#[cfg(feature = "duration")]
pub(crate) const fn is_year_designator(ch: char) -> bool {
ch == 'Y' || ch == 'y'
}
#[inline]
#[cfg(feature = "duration")]
pub(crate) const fn is_month_designator(ch: char) -> bool {
ch == 'M' || ch == 'm'
}
#[inline]
#[cfg(feature = "duration")]
pub(crate) const fn is_week_designator(ch: char) -> bool {
ch == 'W' || ch == 'w'
}
#[inline]
#[cfg(feature = "duration")]
pub(crate) const fn is_day_designator(ch: char) -> bool {
ch == 'D' || ch == 'd'
}
#[inline]
#[cfg(feature = "duration")]
pub(crate) const fn is_hour_designator(ch: char) -> bool {
ch == 'H' || ch == 'h'
}
#[inline]
#[cfg(feature = "duration")]
pub(crate) const fn is_minute_designator(ch: char) -> bool {
is_month_designator(ch)
}
#[inline]
#[cfg(feature = "duration")]
pub(crate) const fn is_second_designator(ch: char) -> bool {
ch == 'S' || ch == 's'
}
#[inline]
pub(crate) const fn is_decimal_separator(ch: char) -> bool {
ch == '.' || ch == ','
}
#[inline]
pub(crate) const fn is_annotation_open(ch: char) -> bool {
ch == '['
}
#[inline]
pub(crate) const fn is_annotation_close(ch: char) -> bool {
ch == ']'
}
#[inline]
pub(crate) const fn is_critical_flag(ch: char) -> bool {
ch == '!'
}
#[inline]
pub(crate) const fn is_annotation_key_value_separator(ch: char) -> bool {
ch == '='
}
#[inline]
pub(crate) const fn is_hyphen(ch: char) -> bool {
ch == '-'
}