From 5975412d97d9752f682219959892455d98c0fc3e Mon Sep 17 00:00:00 2001 From: Shawn Walker-Salas Date: Wed, 11 Jan 2017 22:32:21 -0800 Subject: [PATCH] Update sequencematcher.rs --- src/sequencematcher.rs | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/sequencematcher.rs b/src/sequencematcher.rs index 6bccd52..26c3bf6 100644 --- a/src/sequencematcher.rs +++ b/src/sequencematcher.rs @@ -74,6 +74,32 @@ impl<'a> Sequence for Vec<&'a str> { } } +impl Sequence for String { + fn len(&self) -> usize { + self.len() + } + + fn at_index(&self, index: usize) -> Option<&str> { + if index > self.len() { + return None; + } + unsafe { Some(self.slice_unchecked(index, index + 1)) } + } +} + +impl<'a> Sequence for Vec { + fn len(&self) -> usize { + self.len() + } + + fn at_index(&self, index: usize) -> Option<&str> { + if index < self.len() { + return Some(&self[index]); + } + None + } +} + pub struct SequenceMatcher<'a, T: 'a + ?Sized + Sequence>{ first_sequence: &'a T, second_sequence: &'a T,