use std::fmt::{Display, Formatter};
use inquire::{error::InquireResult, Select};
fn main() -> InquireResult<()> {
let ans: Currency = Select::new("Currency:", Currency::VARIANTS.to_vec()).prompt()?;
match ans {
Currency::BRL | Currency::USD | Currency::CAD | Currency::EUR | Currency::GBP => {
bank_transfer()
}
Currency::BTC | Currency::LTC => crypto_transfer(),
}
Ok(())
}
fn bank_transfer() {
}
fn crypto_transfer() {
}
#[derive(Debug, Copy, Clone)]
#[allow(clippy::upper_case_acronyms)]
enum Currency {
BRL,
USD,
CAD,
EUR,
GBP,
BTC,
LTC,
}
impl Currency {
const VARIANTS: &'static [Currency] = &[
Self::BRL,
Self::USD,
Self::CAD,
Self::EUR,
Self::GBP,
Self::BTC,
Self::LTC,
];
}
impl Display for Currency {
fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), std::fmt::Error> {
write!(f, "{:?}", self)
}
}