Sha256: 726f4b2b29d245d53b81172a5a8b20283e3a2a6fe938b99678e91e1b06cc89cf

Contents?: true

Size: 794 Bytes

Versions: 395

Compression:

Stored size: 794 Bytes

Contents

fn parse_hex_digit(c: char) -> Option<i64> {
    match c {
        '0' => Some(0),
        '1' => Some(1),
        '2' => Some(2),
        '3' => Some(3),
        '4' => Some(4),
        '5' => Some(5),
        '6' => Some(6),
        '7' => Some(7),
        '8' => Some(8),
        '9' => Some(9),
        'a' => Some(10),
        'b' => Some(11),
        'c' => Some(12),
        'd' => Some(13),
        'e' => Some(14),
        'f' => Some(15),
        _   => None,
    }
}

pub fn hex_to_int(string: &str) -> Option<i64> {
    let base: i64 = 16;

    string
        .chars()
        .rev()
        .enumerate()
        .fold(Some(0), |acc, (pos, c)| {
            parse_hex_digit(c).and_then(|n| {
                acc.map(|acc| acc + n * base.pow(pos as u32))
            })
        })
}

Version data entries

395 entries across 395 versions & 1 rubygems

Version Path
trackler-2.2.1.179 tracks/rust/exercises/hexadecimal/example.rs
trackler-2.2.1.178 tracks/rust/exercises/hexadecimal/example.rs
trackler-2.2.1.177 tracks/rust/exercises/hexadecimal/example.rs
trackler-2.2.1.176 tracks/rust/exercises/hexadecimal/example.rs
trackler-2.2.1.175 tracks/rust/exercises/hexadecimal/example.rs
trackler-2.2.1.174 tracks/rust/exercises/hexadecimal/example.rs
trackler-2.2.1.173 tracks/rust/exercises/hexadecimal/example.rs
trackler-2.2.1.172 tracks/rust/exercises/hexadecimal/example.rs
trackler-2.2.1.171 tracks/rust/exercises/hexadecimal/example.rs
trackler-2.2.1.170 tracks/rust/exercises/hexadecimal/example.rs
trackler-2.2.1.169 tracks/rust/exercises/hexadecimal/example.rs
trackler-2.2.1.167 tracks/rust/exercises/hexadecimal/example.rs
trackler-2.2.1.166 tracks/rust/exercises/hexadecimal/example.rs
trackler-2.2.1.165 tracks/rust/exercises/hexadecimal/example.rs
trackler-2.2.1.164 tracks/rust/exercises/hexadecimal/example.rs
trackler-2.2.1.163 tracks/rust/exercises/hexadecimal/example.rs
trackler-2.2.1.162 tracks/rust/exercises/hexadecimal/example.rs
trackler-2.2.1.161 tracks/rust/exercises/hexadecimal/example.rs
trackler-2.2.1.160 tracks/rust/exercises/hexadecimal/example.rs
trackler-2.2.1.159 tracks/rust/exercises/hexadecimal/example.rs