Skip to content

Commit c17a55d

Browse files
authored
Merge pull request #23 from wngr/main
`Pointer::last` return `None` for root pointer
2 parents 4b13aff + c0744b7 commit c17a55d

1 file changed

Lines changed: 10 additions & 0 deletions

File tree

src/pointer.rs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,9 @@ impl Pointer {
204204
}
205205
/// Returns the last `Token` in the `Pointer`.
206206
pub fn back(&self) -> Option<Token> {
207+
if self.is_root() {
208+
return None;
209+
}
207210
self.inner[1..]
208211
.rsplit_once('/')
209212
.map_or(Some((&self.inner[1..], "")), Option::Some)
@@ -1398,7 +1401,14 @@ mod tests {
13981401

13991402
let ptr = Pointer::try_from("/-").unwrap();
14001403
assert_eq!(ptr.last(), Some("-".into()));
1404+
1405+
let ptr = Pointer::default();
1406+
assert_eq!(ptr.last(), None);
1407+
1408+
let ptr = Pointer::try_from("/bar").unwrap();
1409+
assert_eq!(ptr.last(), Some("bar".into()));
14011410
}
1411+
14021412
#[test]
14031413
fn test_first() {
14041414
let ptr = Pointer::try_from("/foo/bar").unwrap();

0 commit comments

Comments
 (0)