Remove unwrap() calls by matching

This commit is contained in:
Matthias Beyer 2016-05-14 19:26:54 +02:00
parent 604e59ae3c
commit 81810dbcc8

View file

@ -796,26 +796,24 @@ impl EntryHeader {
} }
pub fn set_with_sep(&mut self, spec: &str, sep: char, v: Value) -> Result<Option<Value>> { pub fn set_with_sep(&mut self, spec: &str, sep: char, v: Value) -> Result<Option<Value>> {
let tokens = EntryHeader::tokenize(spec, sep); let tokens = match EntryHeader::tokenize(spec, sep) {
if tokens.is_err() { // return parser error if any Err(e) => return Err(e),
return Err(tokens.unwrap_err()); Ok(t) => t,
} };
let tokens = tokens.unwrap();
debug!("tokens = {:?}", tokens); debug!("tokens = {:?}", tokens);
let destination = tokens.iter().last(); let destination = match tokens.iter().last() {
if destination.is_none() { None => return Err(SE::new(SEK::HeaderPathSyntaxError, None)),
return Err(SE::new(SEK::HeaderPathSyntaxError, None)); Some(d) => d
} };
let destination = destination.unwrap();
debug!("destination = {:?}", destination); debug!("destination = {:?}", destination);
let path_to_dest = tokens[..(tokens.len() - 1)].into(); // N - 1 tokens let path_to_dest = tokens[..(tokens.len() - 1)].into(); // N - 1 tokens
let value = EntryHeader::walk_header(&mut self.header, path_to_dest); // walk N-1 tokens // walk N-1 tokens
if value.is_err() { let value = match EntryHeader::walk_header(&mut self.header, path_to_dest) {
return Err(value.unwrap_err()); Err(e) => return Err(e),
} Ok(v) => v
let mut value = value.unwrap(); };
debug!("walked value = {:?}", value); debug!("walked value = {:?}", value);
match *destination { match *destination {