use std::str::FromStr;
pub fn chars_to_string(chars: &Vec<char>) -> String {
let vec_str: Vec<String> = chars.iter()
.map(|ref v| v.to_string()).collect();
let result = vec_str.concat();
result
}
pub fn create_vvchar(text: &String) -> Vec<Vec<char>>{
let split_text: Vec<&str> = text.split_whitespace().collect();
let vvchar: Vec<Vec<char>> = split_text.iter()
.map(|&x| x.chars().collect()).collect();
vvchar
}
pub struct Ni8{pub attr: i8}
impl Ni8 {
pub fn new(attr: &Vec<char>) -> Ni8 {
let n = chars_to_string(&attr);
Ni8 {attr: i8::from_str(&n).unwrap()}
}
}
pub struct Nu8{pub attr: u8}
impl Nu8 {
pub fn new(attr: &Vec<char>) -> Nu8 {
let n = chars_to_string(&attr);
Nu8 {attr: u8::from_str(&n).unwrap()}
}
}
pub struct Ni16{pub attr: i16}
impl Ni16 {
pub fn new(attr: &Vec<char>) -> Ni16 {
let n = chars_to_string(&attr);
Ni16 {attr: i16::from_str(&n).unwrap()}
}
}
pub struct Nu16{pub attr: u16}
impl Nu16 {
pub fn new(attr: &Vec<char>) -> Nu16 {
let n = chars_to_string(&attr);
Nu16 {attr: u16::from_str(&n).unwrap()}
}
}
pub struct Ni32{pub attr: i32}
impl Ni32 {
pub fn new(attr: &Vec<char>) -> Ni32 {
let n = chars_to_string(&attr);
Ni32 {attr: i32::from_str(&n).unwrap()}
}
}
pub struct Nu32{pub attr: u32}
impl Nu32 {
pub fn new(attr: &Vec<char>) -> Nu32 {
let n = chars_to_string(&attr);
Nu32 {attr: u32::from_str(&n).unwrap()}
}
}
pub struct Ni64{pub attr: i64}
impl Ni64 {
pub fn new(attr: &Vec<char>) -> Ni64 {
let n = chars_to_string(&attr);
Ni64 {attr: i64::from_str(&n).unwrap()}
}
}
pub struct Nu64{pub attr: u64}
impl Nu64 {
pub fn new(attr: &Vec<char>) -> Nu64 {
let n = chars_to_string(&attr);
Nu64 {attr: u64::from_str(&n).unwrap()}
}
}
pub struct Nisize{pub attr: isize}
impl Nisize {
pub fn new(attr: &Vec<char>) -> Nisize {
let n = chars_to_string(&attr);
Nisize {attr: isize::from_str(&n).unwrap()}
}
}
pub struct Nusize{pub attr: usize}
impl Nusize {
pub fn new(attr: &Vec<char>) -> Nusize {
let n = chars_to_string(&attr);
Nusize {attr: usize::from_str(&n).unwrap()}
}
}
pub struct Literal{pub attr: String}
impl Literal {
pub fn new(attr: &Vec<char>) -> Literal {
Literal {attr: chars_to_string(&attr)}
}
}