pub fn encode(inp_string: &'static str) -> String{
    let x = tokenize(inp_string);
    let x_tuple = tupleize(x);
    let x_converted = tup_convert(x_tuple);
    let mut encoded_string: String = "".to_string();
    for each in x_converted.into_iter() {
        encoded_string.push_str(each);
    }
    return encoded_string;
}

// Tokenizes a to-be-encoded string
fn tokenize(inp_string: &'static str) -> Vec<&str>{
    return vec!["",""]
}

// "Tuple-izes" a to-be-encoded vector
fn tupleize(inp_vec: Vec<&str>) -> Vec<(&str, i32)>{
    return vec![("A", 3), ("B", 2)]
}

// Converts tuple into a vector of strings
fn tup_convert(inp_tuple: Vec<(&str, i32)>) -> Vec<&str>{
    return vec!["3A", "2B"]
}

pub fn decode(inp_string: &'static str) -> String{
    return String::from("")
}

fn main(){
    print!("{}", encode("hi"));
}