Sha256: 7cb3fbcee394414403c209416b080ad4ff623c7161099d237760c4950ffb99c2

Contents?: true

Size: 724 Bytes

Versions: 395

Compression:

Stored size: 724 Bytes

Contents

extern crate rand;
use rand::{thread_rng, Rng};

pub struct Robot {
    name: String
}

fn generate_name() -> String {
    let mut s = String::with_capacity(5);
    static LETTERS: &'static [u8] = b"ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    static NUMBERS: &'static [u8] = b"0123456789";
    for _ in 0..2 {
        s.push(thread_rng().choose(LETTERS).unwrap().clone() as char);
    }
    for _ in 0..3 {
        s.push(thread_rng().choose(NUMBERS).unwrap().clone() as char);
    }
    s
}

impl Robot {
    pub fn new() -> Robot {
        Robot { name: generate_name() }
    }

    pub fn name<'a>(&'a self) -> &'a str {
        &self.name[..]
    }

    pub fn reset_name(&mut self) {
        self.name = generate_name();
    }

}

Version data entries

395 entries across 395 versions & 1 rubygems

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