Sha256: 2743b5c275aa029b1d27e63f4ed25fe9c96cc8f1899e6902dd9023ee5e8dd3e0

Contents?: true

Size: 701 Bytes

Versions: 224

Compression:

Stored size: 701 Bytes

Contents

pub fn number(s: &str) -> Option<String> {
    let digits: String = s
        .chars()
        .filter(|&c| c.is_digit(10))
        .collect();
    match digits.len() {
        10 => Some(digits),
        11 => match digits.chars().nth(0) {
            Some('1') => Some(digits[1..].to_string()),
            _   => None
        },
        _  => None
    }
}

pub fn area_code(s: &str) -> Option<String> {
    number(s).map(|n| n[..3].to_string())
}

pub fn pretty_print(s: &str) -> String {
    number(s).map(|n| 
        format!("({area}) {prefix}-{exchange}",
                area=&n[..3],
                prefix=&n[3..6],
                exchange=&n[6..])
    ).unwrap_or("invalid".to_string())
}

Version data entries

224 entries across 224 versions & 1 rubygems

Version Path
trackler-2.2.1.6 tracks/rust/exercises/phone-number/example.rs
trackler-2.2.1.5 tracks/rust/exercises/phone-number/example.rs
trackler-2.2.1.4 tracks/rust/exercises/phone-number/example.rs
trackler-2.2.1.3 tracks/rust/exercises/phone-number/example.rs
trackler-2.2.1.2 tracks/rust/exercises/phone-number/example.rs
trackler-2.2.1.1 tracks/rust/exercises/phone-number/example.rs
trackler-2.2.1.0 tracks/rust/exercises/phone-number/example.rs
trackler-2.2.0.6 tracks/rust/exercises/phone-number/example.rs
trackler-2.2.0.5 tracks/rust/exercises/phone-number/example.rs
trackler-2.2.0.4 tracks/rust/exercises/phone-number/example.rs
trackler-2.2.0.3 tracks/rust/exercises/phone-number/example.rs
trackler-2.2.0.2 tracks/rust/exercises/phone-number/example.rs
trackler-2.2.0.1 tracks/rust/exercises/phone-number/example.rs
trackler-2.2.0.0 tracks/rust/exercises/phone-number/example.rs
trackler-2.1.0.55 tracks/rust/exercises/phone-number/example.rs
trackler-2.1.0.54 tracks/rust/exercises/phone-number/example.rs
trackler-2.1.0.53 tracks/rust/exercises/phone-number/example.rs
trackler-2.1.0.52 tracks/rust/exercises/phone-number/example.rs
trackler-2.1.0.51 tracks/rust/exercises/phone-number/example.rs
trackler-2.1.0.50 tracks/rust/exercises/phone-number/example.rs