Skip to content

Commit 90ddfc7

Browse files
committed
Use the same structure for non-Unicode variants of EscapeDefaultState
This makes it easier to have a unique path for handling all of them.
1 parent 23c5da0 commit 90ddfc7

File tree

1 file changed

+10
-10
lines changed

1 file changed

+10
-10
lines changed

src/libcore/char.rs

+10-10
Original file line numberDiff line numberDiff line change
@@ -571,7 +571,7 @@ pub struct EscapeDefault {
571571

572572
#[derive(Clone)]
573573
enum EscapeDefaultState {
574-
Done,
574+
Done(char),
575575
Char(char),
576576
Backslash(char),
577577
Unicode(EscapeUnicode),
@@ -588,10 +588,10 @@ impl Iterator for EscapeDefault {
588588
Some('\\')
589589
}
590590
EscapeDefaultState::Char(c) => {
591-
self.state = EscapeDefaultState::Done;
591+
self.state = EscapeDefaultState::Done(c);
592592
Some(c)
593593
}
594-
EscapeDefaultState::Done => None,
594+
EscapeDefaultState::Done(_) => None,
595595
EscapeDefaultState::Unicode(ref mut iter) => iter.next(),
596596
}
597597
}
@@ -614,31 +614,31 @@ impl Iterator for EscapeDefault {
614614
Some('\\')
615615
},
616616
EscapeDefaultState::Backslash(c) if n == 1 => {
617-
self.state = EscapeDefaultState::Done;
617+
self.state = EscapeDefaultState::Done(c);
618618
Some(c)
619619
},
620-
EscapeDefaultState::Backslash(_) => {
621-
self.state = EscapeDefaultState::Done;
620+
EscapeDefaultState::Backslash(c) => {
621+
self.state = EscapeDefaultState::Done(c);
622622
None
623623
},
624624
EscapeDefaultState::Char(c) => {
625-
self.state = EscapeDefaultState::Done;
625+
self.state = EscapeDefaultState::Done(c);
626626

627627
if n == 0 {
628628
Some(c)
629629
} else {
630630
None
631631
}
632632
},
633-
EscapeDefaultState::Done => return None,
633+
EscapeDefaultState::Done(_) => return None,
634634
EscapeDefaultState::Unicode(ref mut i) => return i.nth(n),
635635
}
636636
}
637637

638638
fn last(self) -> Option<char> {
639639
match self.state {
640640
EscapeDefaultState::Unicode(iter) => iter.last(),
641-
EscapeDefaultState::Done => None,
641+
EscapeDefaultState::Done(_) => None,
642642
EscapeDefaultState::Backslash(c) | EscapeDefaultState::Char(c) => Some(c),
643643
}
644644
}
@@ -648,7 +648,7 @@ impl Iterator for EscapeDefault {
648648
impl ExactSizeIterator for EscapeDefault {
649649
fn len(&self) -> usize {
650650
match self.state {
651-
EscapeDefaultState::Done => 0,
651+
EscapeDefaultState::Done(_) => 0,
652652
EscapeDefaultState::Char(_) => 1,
653653
EscapeDefaultState::Backslash(_) => 2,
654654
EscapeDefaultState::Unicode(ref iter) => iter.len(),

0 commit comments

Comments
 (0)