Skip to content

Commit bf33882

Browse files
committed
Fix / prefix match
1 parent 392e1f8 commit bf33882

File tree

4 files changed

+21
-2
lines changed

4 files changed

+21
-2
lines changed

ntex-router/CHANGES.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# Changes
22

3+
## [0.3.3] - 2020-04-11
4+
5+
* Fix `/` prefix match
6+
37
## [0.3.2] - 2020-04-06
48

59
* Fix IdxSegment item for paths with no root

ntex-router/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "ntex-router"
3-
version = "0.3.2"
3+
version = "0.3.3"
44
authors = ["Nikolay Kim <fafhrd91@gmail.com>"]
55
description = "Path router"
66
keywords = ["ntex"]

ntex-router/src/resource.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -761,6 +761,11 @@ mod tests {
761761

762762
#[test]
763763
fn test_resource_prefix() {
764+
let tree = Tree::new(&ResourceDef::prefix("/"), 1);
765+
assert_eq!(tree.find(&mut Path::new("/")), Some(1));
766+
assert_eq!(tree.find(&mut Path::new("/a")), Some(1));
767+
assert_eq!(tree.find(&mut Path::new("/a/test/test")), Some(1));
768+
764769
let tree = Tree::new(&ResourceDef::prefix("/name"), 1);
765770
assert_eq!(tree.find(&mut Path::new("/name")), Some(1));
766771
assert_eq!(tree.find(&mut Path::new("/name/")), Some(1));

ntex-router/src/tree.rs

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,7 @@ impl Tree {
208208
if path == "/" {
209209
for val in &self.value {
210210
let v = match val {
211-
Value::Slesh(v) | Value::Prefix(v) => *v,
211+
Value::Slesh(v) | Value::Prefix(v) | Value::PrefixSlesh(v) => *v,
212212
_ => continue,
213213
};
214214
if check(v, resource) {
@@ -225,6 +225,16 @@ impl Tree {
225225
return Some(v);
226226
}
227227
}
228+
} else {
229+
for val in &self.value {
230+
let v = match val {
231+
Value::PrefixSlesh(v) => *v,
232+
_ => continue,
233+
};
234+
if check(v, resource) {
235+
return Some(v);
236+
}
237+
}
228238
}
229239

230240
let path = if path.starts_with('/') {

0 commit comments

Comments
 (0)