///|
/// Validate RFC 3501 sequence-set syntax without interpreting mailbox contents.
pub fn valid_sequence_set(s : String) -> Bool {
  if s.is_empty() || s.length() > 4096 {
    return false
  }
  for group in s.split(",") {
    let parts = group.split(":").collect()
    if parts.length() < 1 || parts.length() > 2 {
      return false
    }
    for part in parts {
      if part == "*" {
        continue
      }
      if part.is_empty() ||
        part.has_prefix("0") ||
        !part.iter().all(c => c >= '0' && c <= '9') {
        return false
      }
      let n = @strconv.parse_uint64(part) catch { _ => return false }
      if n > 4294967295UL {
        return false
      }
    }
  }
  true
}