1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
/*! # Número por Extenso Biblioteca Rust para conversão por extenso de valores numéricos. [![Crates.io](https://img.shields.io/crates/v/numero-por-extenso)](https://crates.io/crates/numero-por-extenso) • [![Crates.io](https://img.shields.io/crates/l/numero-por-extenso)](https://github.com/andrelmlins/numero-por-extenso/blob/master/LICENSE) • [![Build Status](https://travis-ci.com/andrelmlins/numero-por-extenso.svg?branch=master)](https://travis-ci.com/andrelmlins/numero-por-extenso) ## Instalação Adicione isso no seu `Cargo.toml`: ```toml [dependencies] numero-por-extenso = "0.1.0" ``` ## Uso básico Abaixo uma forma simples de como utilizar essa biblioteca: ```rust extern crate numero_por_extenso; use numero_por_extenso::por_extenso; use numero_por_extenso::TipoExtenso; println!("numero por extenso: {}", por_extenso(123456, TipoExtenso::DECIMAL)); // cento e vinte e três mil, quatrocentos e cinquenta e seis println!("numero por extenso: {}", por_extenso(1234.56, TipoExtenso::MONETARIO)); // mil, duzentos e trinta e quatro reais e cinquenta e seis centavos println!("numero por extenso: {}", por_extenso(23, TipoExtenso::PORCENTAGEM)); // vinte e três por cento ``` */ mod conversor; mod helpers; mod tipo; use helpers::*; pub use tipo::TipoExtenso; pub fn por_extenso<T: Into<f64>>(valor: T, tipo: TipoExtenso) -> String { let _valor_string = valor.into().to_string(); let _separar_decimal: Vec<&str> = _valor_string.split(".").collect(); let _inteiro = normalizar(String::from(_separar_decimal[0])); let mut _decimal = String::from(""); if _separar_decimal.len() > 1 { _decimal = normalizar(String::from(_separar_decimal[1])); } let string = conversor::gerar_extenso(_inteiro, _decimal, tipo); string }