about summary refs log tree commit diff
path: root/src/libcore/uint-template
diff options
context:
space:
mode:
authorBrian Anderson <banderson@mozilla.com>2012-05-15 22:50:29 -0700
committerBrian Anderson <banderson@mozilla.com>2012-05-15 22:50:35 -0700
commitcb6ed427174031f67f226da292aa85f8127f4513 (patch)
tree439c464588b9a01dadbd9620548fdfa3a556965e /src/libcore/uint-template
parent0e21a05e6c0bc0bfa905291a916b38bdb9daf90d (diff)
downloadrust-cb6ed427174031f67f226da292aa85f8127f4513.tar.gz
rust-cb6ed427174031f67f226da292aa85f8127f4513.zip
core: Generalize uint-string conversions to all uint types
Issue #2239
Diffstat (limited to 'src/libcore/uint-template')
-rw-r--r--src/libcore/uint-template/u64.rs61
-rw-r--r--src/libcore/uint-template/uint.rs98
2 files changed, 0 insertions, 159 deletions
diff --git a/src/libcore/uint-template/u64.rs b/src/libcore/uint-template/u64.rs
index 5de83d41da3..4e83ebd4976 100644
--- a/src/libcore/uint-template/u64.rs
+++ b/src/libcore/uint-template/u64.rs
@@ -1,62 +1 @@
 type T = u64;
-
-// Type-specific functions here. These must be reexported by the
-// parent module so that they appear in core::u8 and not core::u8::u8;
-
-
-// FIXME: Surely we can generalize this to apply to all uint types
-#[doc = "Convert to a string in a given base"]
-fn to_str(n: u64, radix: uint) -> str {
-    assert (0u < radix && radix <= 16u);
-
-    let r64 = radix as u64;
-
-    fn digit(n: u64) -> str {
-        ret alt n {
-              0u64 { "0" }
-              1u64 { "1" }
-              2u64 { "2" }
-              3u64 { "3" }
-              4u64 { "4" }
-              5u64 { "5" }
-              6u64 { "6" }
-              7u64 { "7" }
-              8u64 { "8" }
-              9u64 { "9" }
-              10u64 { "a" }
-              11u64 { "b" }
-              12u64 { "c" }
-              13u64 { "d" }
-              14u64 { "e" }
-              15u64 { "f" }
-              _ { fail }
-            };
-    }
-
-    if n == 0u64 { ret "0"; }
-
-    let mut s = "";
-
-    let mut n = n;
-    while n > 0u64 { s = digit(n % r64) + s; n /= r64; }
-    ret s;
-}
-
-#[doc = "Convert to a string"]
-fn str(n: u64) -> str { ret to_str(n, 10u); }
-
-#[doc = "Parse a string as an unsigned integer."]
-fn from_str(buf: str, radix: u64) -> option<u64> {
-    if str::len(buf) == 0u { ret none; }
-    let mut i = str::len(buf) - 1u;
-    let mut power = 1u64, n = 0u64;
-    loop {
-        alt char::to_digit(buf[i] as char, radix as uint) {
-          some(d) { n += d as u64 * power; }
-          none { ret none; }
-        }
-        power *= radix;
-        if i == 0u { ret some(n); }
-        i -= 1u;
-    };
-}
diff --git a/src/libcore/uint-template/uint.rs b/src/libcore/uint-template/uint.rs
index 27a8c26a248..c8fb9731d47 100644
--- a/src/libcore/uint-template/uint.rs
+++ b/src/libcore/uint-template/uint.rs
@@ -89,104 +89,6 @@ fn next_power_of_two(n: uint) -> uint {
     ret tmp + 1u;
 }
 
-#[doc = "
-Parse a buffer of bytes
-
-# Arguments
-
-* buf - A byte buffer
-* radix - The base of the number
-
-# Failure
-
-`buf` must not be empty
-"]
-fn parse_buf(buf: [u8], radix: uint) -> option<uint> {
-    if vec::len(buf) == 0u { ret none; }
-    let mut i = vec::len(buf) - 1u;
-    let mut power = 1u;
-    let mut n = 0u;
-    loop {
-        alt char::to_digit(buf[i] as char, radix) {
-          some(d) { n += d * power; }
-          none { ret none; }
-        }
-        power *= radix;
-        if i == 0u { ret some(n); }
-        i -= 1u;
-    };
-}
-
-#[doc = "Parse a string to an int"]
-fn from_str(s: str) -> option<uint> { parse_buf(str::bytes(s), 10u) }
-
-#[doc = "Convert to a string in a given base"]
-fn to_str(num: uint, radix: uint) -> str {
-    let mut n = num;
-    assert (0u < radix && radix <= 16u);
-    fn digit(n: uint) -> char {
-        ret alt n {
-              0u { '0' }
-              1u { '1' }
-              2u { '2' }
-              3u { '3' }
-              4u { '4' }
-              5u { '5' }
-              6u { '6' }
-              7u { '7' }
-              8u { '8' }
-              9u { '9' }
-              10u { 'a' }
-              11u { 'b' }
-              12u { 'c' }
-              13u { 'd' }
-              14u { 'e' }
-              15u { 'f' }
-              _ { fail }
-            };
-    }
-    if n == 0u { ret "0"; }
-    let mut s: str = "";
-    while n != 0u {
-        s += str::from_byte(digit(n % radix) as u8);
-        n /= radix;
-    }
-    let mut s1: str = "";
-    let mut len: uint = str::len(s);
-    while len != 0u { len -= 1u; s1 += str::from_byte(s[len]); }
-    ret s1;
-}
-
-#[doc = "Convert to a string"]
-fn str(i: uint) -> str { ret to_str(i, 10u); }
-
-#[test]
-fn test_from_str() {
-    assert uint::from_str("0") == some(0u);
-    assert uint::from_str("3") == some(3u);
-    assert uint::from_str("10") == some(10u);
-    assert uint::from_str("123456789") == some(123456789u);
-    assert uint::from_str("00100") == some(100u);
-
-    assert uint::from_str("") == none;
-    assert uint::from_str(" ") == none;
-    assert uint::from_str("x") == none;
-}
-
-#[Test]
-fn test_parse_buf() {
-    import str::bytes;
-    assert uint::parse_buf(bytes("123"), 10u) == some(123u);
-    assert uint::parse_buf(bytes("1001"), 2u) == some(9u);
-    assert uint::parse_buf(bytes("123"), 8u) == some(83u);
-    assert uint::parse_buf(bytes("123"), 16u) == some(291u);
-    assert uint::parse_buf(bytes("ffff"), 16u) == some(65535u);
-    assert uint::parse_buf(bytes("z"), 36u) == some(35u);
-
-    assert uint::parse_buf(str::bytes("Z"), 10u) == none;
-    assert uint::parse_buf(str::bytes("_"), 2u) == none;
-}
-
 #[test]
 fn test_next_power_of_two() {
     assert (uint::next_power_of_two(0u) == 0u);