From f9ef8cd55512842f2481aac6332dbfb92df58c52 Mon Sep 17 00:00:00 2001 From: Marvin Löbel Date: Tue, 27 Jan 2015 14:09:18 +0100 Subject: Refactored code into Searcher traits with naive implementations Made the family of Split iterators use the Pattern API Renamed the Matcher traits into Searcher --- src/libcore/char.rs | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) (limited to 'src/libcore/char.rs') diff --git a/src/libcore/char.rs b/src/libcore/char.rs index c45fac1bc94..8e27ae1cea9 100644 --- a/src/libcore/char.rs +++ b/src/libcore/char.rs @@ -22,13 +22,13 @@ use option::Option; use slice::SliceExt; // UTF-8 ranges and tags for encoding characters -static TAG_CONT: u8 = 0b1000_0000u8; -static TAG_TWO_B: u8 = 0b1100_0000u8; -static TAG_THREE_B: u8 = 0b1110_0000u8; -static TAG_FOUR_B: u8 = 0b1111_0000u8; -static MAX_ONE_B: u32 = 0x80u32; -static MAX_TWO_B: u32 = 0x800u32; -static MAX_THREE_B: u32 = 0x10000u32; +const TAG_CONT: u8 = 0b1000_0000u8; +const TAG_TWO_B: u8 = 0b1100_0000u8; +const TAG_THREE_B: u8 = 0b1110_0000u8; +const TAG_FOUR_B: u8 = 0b1111_0000u8; +const MAX_ONE_B: u32 = 0x80u32; +const MAX_TWO_B: u32 = 0x800u32; +const MAX_THREE_B: u32 = 0x10000u32; /* Lu Uppercase_Letter an uppercase letter @@ -398,11 +398,14 @@ impl CharExt for char { #[stable(feature = "rust1", since = "1.0.0")] fn len_utf8(self) -> usize { let code = self as u32; - match () { - _ if code < MAX_ONE_B => 1, - _ if code < MAX_TWO_B => 2, - _ if code < MAX_THREE_B => 3, - _ => 4, + if code < MAX_ONE_B { + 1 + } else if code < MAX_TWO_B { + 2 + } else if code < MAX_THREE_B { + 3 + } else { + 4 } } -- cgit 1.4.1-3-g733a5