rust_demos 0.1.0

Aa demo crate
Documentation
/*fn first_one(){
	println!("\nThis is first function");

}
pub fn second_one(){
	println!("\nThis is second function");

}
pub fn call_first(){
	println!("In <callfirst> function");
	println!("Calling <first_one> function");
	first_one();
}
*/

//Creating sub modules
pub mod all_oper{
	pub mod arith_oper{
		fn add_values(num1:i16,num2:i16)->i16{
			num1+num2
		}
		fn sub_values(num1:i16,num2:i16)->i16{
			num1-num2
		}
		fn mul_values(num1:i16,num2:i16)->i16{
			num1*num2
		}
		pub fn perform_arith_op(num1:i16,num2:i16){
			println!("\n{}+{}={}",num1,num2,add_values(num1,num2));
			println!("\n{}-{}={}",num1,num2,sub_values(num1,num2));
			println!("\n{}*{}={}",num1,num2,mul_values(num1,num2));

		}
	}
	pub mod num_oper{
		pub fn factorial(num:u8)->u32{
			let mut f:u32=1;
			for i in 2..num+1{
				f*=i as u32;
			}
			f
		}
		pub fn is_prime(num: i16) -> bool {
			let mut prime_num: bool = true;
			
			for i in 2..num {
				if num%i == 0 {
					prime_num = false;
					break;
				}
			}
			prime_num
		}

	}
	pub mod string_oper {
		pub fn is_palindrome(str_val: &str) -> bool {
						
			// converting the given string to vector to make it indexable
			let st: Vec<char> = str_val.chars().collect();		 
			
			let mut	palind = true;
			let mut n = st.len()-1;			
			let mut i = 0;					
			
			while i<n {
				if st[i].to_ascii_lowercase() != st[n].to_ascii_lowercase() {
					palind = false;
					break;				
				}
				i += 1;
				n -= 1;
			}
			palind
		}
	}
}