Fixed bug causing crashes on wide unicode characters (fixes #29).

This commit is contained in:
Aaron Weiss 2015-07-01 17:13:48 -04:00
parent 627921ba36
commit 3afef46198

View file

@ -198,22 +198,22 @@ impl FromStr for AccessLevel {
}
/// An iterator used to parse access levels from strings.
struct AccessLevelIterator<'a> {
value: &'a str,
struct AccessLevelIterator {
value: String,
}
impl<'a> AccessLevelIterator<'a> {
pub fn new(value: &'a str) -> AccessLevelIterator<'a> {
AccessLevelIterator { value: value }
impl AccessLevelIterator {
pub fn new(value: &str) -> AccessLevelIterator {
AccessLevelIterator { value: value.to_owned() }
}
}
impl<'a> Iterator for AccessLevelIterator<'a> {
impl Iterator for AccessLevelIterator {
type Item = AccessLevel;
fn next(&mut self) -> Option<AccessLevel> {
let ret = self.value.parse();
if self.value.len() > 0 {
self.value = &self.value[1..];
self.value = self.value.chars().skip(1).collect()
}
ret.ok()
}