Add char.rs

This commit is contained in:
Nicolas 2022-04-02 17:20:52 +02:00
parent aed1f6d58e
commit c193d5897a
2 changed files with 22 additions and 0 deletions

16
src/char.rs Normal file
View File

@ -0,0 +1,16 @@
pub struct CharSampler {
chars: String
}
impl CharSampler {
pub fn new(chars: String) -> Self {
Self { chars }
}
pub fn sample(&self, level: f32) -> char {
let pos = level * self.chars.chars().count() as f32;
let index = pos as usize;
self.chars.chars().nth(index).unwrap()
}
}

View File

@ -1,20 +1,26 @@
use clap::Parser;
use rand::rngs::OsRng;
use crate::char::CharSampler;
use crate::pallet::{choose_pallet, create_pallet, PalletEnum};
mod pallet;
mod char;
#[derive(Parser)]
#[clap(author = "Rico Riedel", version = "0.1.0", about = "Wipe your terminal with a random animation.")]
struct Args {
#[clap(short, long, help = "Add color pallet", arg_enum)]
pallet: Vec<PalletEnum>,
#[clap(long, default_value = ".-+%#", help = "Set chars")]
chars: String
}
fn main() {
let args = Args::parse();
let rng = &mut OsRng::default();
let chars = CharSampler::new(args.chars);
let pallet_key = choose_pallet(args.pallet, rng);
let pallet = create_pallet(pallet_key);
}