diff --git a/src/node.rs b/src/node.rs index 572b6c1..e32946d 100644 --- a/src/node.rs +++ b/src/node.rs @@ -164,14 +164,13 @@ impl Node { // parameter if let Some(id) = self.nodes1.as_ref().and_then(|nodes| { - let b = m > 0; nodes .iter() .filter(|node| match node.key { Key::Parameter(pk) if pk == Kind::Normal || pk == Kind::OneOrMore => { - b + m > 0 } _ => true, }) @@ -250,14 +249,13 @@ impl Node { // parameter => `:a:b:c` if let Some(id) = self.nodes1.as_ref().and_then(|nodes| { - let b = m - 1 > 0; nodes .iter() .filter(|node| match node.key { Key::Parameter(pk) if pk == Kind::Normal || pk == Kind::OneOrMore => { - b + m - 1 > 0 } _ => true, }) @@ -271,14 +269,13 @@ impl Node { // parameter => `:a:b?:c?` if k == &Kind::Optional || k == &Kind::OptionalSegment { if let Some(id) = self.nodes1.as_ref().and_then(|nodes| { - let b = m > 0; nodes .iter() .filter(|node| match &node.key { Key::Parameter(pk) if pk == &Kind::Normal || pk == &Kind::OneOrMore => { - b + m > 0 } _ => true, }) @@ -341,7 +338,7 @@ impl Node { if let Key::String(s) = &node.key { let is_slash = is_one_or_more && s.len() == 1 && s[0] == b'/'; if is_slash { - let r = bytes + if let Some(id) = bytes .iter() .enumerate() .filter_map(|(n, b)| (s[0] == *b).then_some(n)) @@ -358,10 +355,9 @@ impl Node { }) }) }) - }); - - if r.is_some() { - return r; + }) + { + return Some(id); } }