diff options
Diffstat (limited to 'src/poem/elements/verse.rs')
| -rw-r--r-- | src/poem/elements/verse.rs | 25 | 
1 files changed, 13 insertions, 12 deletions
| diff --git a/src/poem/elements/verse.rs b/src/poem/elements/verse.rs index 5694b55..a1ae65f 100644 --- a/src/poem/elements/verse.rs +++ b/src/poem/elements/verse.rs @@ -192,16 +192,16 @@ impl Verse {      /// let stanza_success = Stanza::new(command_success);      /// let stanza_fail = Stanza::new(command_fail);      /// -    /// stanza_success.spellcheck(bins) // -> true -    /// stanza_fail.spellcheck(bins) // -> false +    /// stanza_success.spellcheck(bins) // -> Some(i) +    /// stanza_fail.spellcheck(bins) // -> None      /// ``` -    pub fn spellcheck(&self, bins: &Vec<String>) -> bool { +    pub fn spellcheck(&self, bins: &Vec<String>) -> Option<usize> {          // An empty verb (i.e. the empty string) cannot be a program, so          // return false          // Thanks to the parsing in Poem::read, however, it's          // unlikely for this to happen          if self.verb().is_empty() { -            return false; +            return None;          }          // Only search the $PATH if a full or relative path was not given, or @@ -209,17 +209,18 @@ impl Verse {          if !Path::new(self.verb().as_str()).exists() {              // Try to find a binary in our path with the same name as the verb              // Searches in $PATH order -            match bins -                .iter() -                .find(|bin| bin.split('/').last().unwrap() == self.verb()) -            { -                Some(_) => return true, -                None => return false, +            for (i, path) in bins.iter().enumerate() { +                if path.split('/').last().unwrap() == self.verb() { +                    return Some(i); +                }              } + +            // If it was not found, return None +            return None;          } -        // Return true if the full path or relative path exists -        true +        // Return the length of bins if the full path or relative path exists +        Some(bins.len())      }      /// Run a command | 
