diff --git a/src/types.rs b/src/types.rs index 854fba8..42b3450 100644 --- a/src/types.rs +++ b/src/types.rs @@ -316,7 +316,7 @@ impl Field { Map::new() } - fn valid_field(&self, name: VecDeque) -> Option { + fn valid_field(&self, name: VecDeque<&NamePart>) -> Option { trace!("Checking {:?} and {:?}", self, name); match *self { Field::Array(ref arr) => arr.valid_field(name), @@ -376,7 +376,7 @@ impl Array { } } - fn valid_field(&self, mut name: VecDeque) -> Option { + fn valid_field(&self, mut name: VecDeque<&NamePart>) -> Option { trace!("Checking {:?} and {:?}", self, name); match name.pop_front() { Some(name_part) => match name_part { @@ -428,14 +428,14 @@ impl Map { Field::Map(self) } - fn valid_field(&self, mut name: VecDeque) -> Option { + fn valid_field(&self, mut name: VecDeque<&NamePart>) -> Option { trace!("Checking {:?} and {:?}", self, name); match name.pop_front() { Some(name_part) => match name_part { NamePart::Map(part_name) => self .inner .iter() - .find(|&&(ref item, _)| *item == part_name) + .find(|&&(ref item, _)| *item == *part_name) .and_then(|&(_, ref field)| field.valid_field(name)), _ => None, }, @@ -531,7 +531,7 @@ impl Form { self } - pub(crate) fn valid_field(&self, name: VecDeque) -> Option { + pub(crate) fn valid_field(&self, name: VecDeque<&NamePart>) -> Option { self.inner.valid_field(name.clone()) } } diff --git a/src/upload.rs b/src/upload.rs index b4b7531..2a15a52 100644 --- a/src/upload.rs +++ b/src/upload.rs @@ -193,7 +193,7 @@ async fn handle_stream_field( let name = parse_multipart_name(name)?; let term = form - .valid_field(name.iter().cloned().collect()) + .valid_field(name.iter().collect()) .ok_or(Error::FieldType)?; let content = match term {