идут подряд:
                  
                  
                  fn count_followed_chars(string: &str) -> u16 {
                  
                  
                      let mut total = 0u16;
                  
                  
                      for (ch1, ch2) in string.chars().zip(string.chars().skip(1)) {
                  
                  
                          if ch1 == ch2 {
                  
                  
                              total += 1;
                  
                  
                          }
                  
                  
                      }
                  
                  
                      total
                  
                  
                  }Все работает. Но хочу, например, выдавать ошибку, если количество символов в string меньше двух (исскуственный пример).
                  
                  
                  
                  
                  
                  Прочитал про Result.
                  
                  
                  
                  
                  
                  В документации нашел пример функции:
                  
                  
                  #[derive(Debug)]
                  
                  
                  enum Version { Version1, Version2 }
                  
                  
                  
                  
                  
                  fn parse_version(header: &[u8]) -> Result<Version, &'static str> {
                  
                  
                      match header.get(0) {
                  
                  
                          None => Err("invalid header length"),
                  
                  
                          Some(&1) => Ok(Version::Version1),
                  
                  
                          Some(&2) => Ok(Version::Version2),
                  
                  
                          Some(_) => Err("invalid version"),
                  
                  
                      }
                  
                  
                  }
                  
                  
                  
                  
                  
                  let version = parse_version(&[1, 2, 3, 4]);
                  
                  
                  match version {
                  
                  
                      Ok(v) => println!("working with version: {:?}", v),
                  
                  
                      Err(e) => println!("error parsing header: {:?}", e),
                  
                  
                  }
                  
                  
                  Попытался составить что-то похожее для своей:
                  
                  
                  fn count_followed_chars(string: &str) -> Result<u16, &'static str> {
                  
                  
                      if string.chars().count() < 2 {
                  
                  
                          Err("Incrorrect length of string: should be 2 or more");
                  
                  
                      }
                  
                  
                      let mut total = 0u16;
                  
                  
                      for (ch1, ch2) in string.chars().zip(string.chars().skip(1)) {
                  
                  
                          if ch1 == ch2 {
                  
                  
                              total += 1;
                  
                  
                          }
                  
                  
                      }
                  
                  
                      Ok(total)
                  
                  
                  }
                  
                  
                  Но видать, я не в ту сторону пошел. 
                  
                  
                  
                  
                  
                  Подскажите, каким образом сделать данную проверку на количество символов в строке и вернуть ошибку наружу.
                  
                  
                
return Err(".... 2 or more");
Обсуждают сегодня