|  | @@ -340,11 +340,9 @@ impl FromStr for ProtoSet {
 | 
	
		
			
				|  |  |      /// ```
 | 
	
		
			
				|  |  |      fn from_str(version_string: &str) -> Result<Self, Self::Err> {
 | 
	
		
			
				|  |  |          let mut pairs: Vec<(Version, Version)> = Vec::new();
 | 
	
		
			
				|  |  | -        let pieces: ::std::str::Split<char> = version_string.trim().split(',');
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        for piece in pieces {
 | 
	
		
			
				|  |  | -            let p: &str = piece.trim();
 | 
	
		
			
				|  |  | +        let pieces: ::std::str::Split<char> = version_string.split(',');
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +        for p in pieces {
 | 
	
		
			
				|  |  |              if p.is_empty() {
 | 
	
		
			
				|  |  |                  continue;
 | 
	
		
			
				|  |  |              } else if p.contains('-') {
 | 
	
	
		
			
				|  | @@ -369,7 +367,7 @@ impl FromStr for ProtoSet {
 | 
	
		
			
				|  |  |                  pairs.push((v, v));
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -        // If we were passed in an empty string, or a bunch of whitespace, or
 | 
	
		
			
				|  |  | +        // If we were passed in an empty string, or
 | 
	
		
			
				|  |  |          // simply a comma, or a pile of commas, then return an empty ProtoSet.
 | 
	
		
			
				|  |  |          if pairs.len() == 0 {
 | 
	
		
			
				|  |  |              return Ok(ProtoSet::default());
 | 
	
	
		
			
				|  | @@ -560,6 +558,13 @@ mod test {
 | 
	
		
			
				|  |  |          assert_eq!(Err(ProtoverError::Unparseable), ProtoSet::from_str("%="));
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    #[test]
 | 
	
		
			
				|  |  | +    fn test_versions_from_str_whitespace() {
 | 
	
		
			
				|  |  | +        assert_eq!(Err(ProtoverError::Unparseable), ProtoSet::from_str("1,2\n"));
 | 
	
		
			
				|  |  | +        assert_eq!(Err(ProtoverError::Unparseable), ProtoSet::from_str("1\r,2"));
 | 
	
		
			
				|  |  | +        assert_eq!(Err(ProtoverError::Unparseable), ProtoSet::from_str("1,\t2"));
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      #[test]
 | 
	
		
			
				|  |  |      fn test_versions_from_str_overlap() {
 | 
	
		
			
				|  |  |          assert_eq!(Err(ProtoverError::Overlap), ProtoSet::from_str("1-3,2-4"));
 |