水瀬いのりが完成するまで続ける Rust

これはなに

これは水瀬いのりさん*1が完成するまで続けるスレを Rust です。
(Rust の素振りがしたかっただけ)

コード

use chrono::Local;
use rand::Rng;

fn main() {
    let source = "水瀬いのり";
    let source_v: Vec<char> = source.chars().collect();

    let mut loop_count = 1;
    let mut is_success = false;
    let mut result: Vec<char> = vec![];
    while !is_success {
        let local_datetime = Local::now().format("%Y/%m/%d %H:%M:%S%.3f");
        let index = rand::thread_rng().gen_range(0, source_v.len());
        println!(
            "{} :以下、名無しにかわりましてVIPがお送りします : {}\n{}",
            loop_count, local_datetime, source_v[index]
        );

        if result.len() == source_v.len() {
            result.drain(0..1);
        }
        result.push(source_v[index]);

        if result == source_v {
            is_success = true;
            let local_datetime = Local::now().format("%Y/%m/%d %H:%M:%S%.3f");
            println!(
                "{} :以下、名無しにかわりましてVIPがお送りします : {}\n成功!",
                loop_count, local_datetime
            );
        }

        loop_count += 1;
    }
}

挙動

水瀬いのりさんは概ね500〜4000レスで完成する。

f:id:bps_tomoya:20190828163054g:plain

*1:いのりまち町民集会2019ファンクラブ先行チケット申し込み締め切りは9月3日(火)18:00です