general_tools 0.1.25

This crate offers many functions for many different types of operations, such as operations with strings, numbers, files, and more!
Documentation
//!
//! 
//! 
//! 
//! 
//!
//! 
//! 
//! 
//! 
//! 
//! 
//! 
//! 
//! 
//! 
//! 
//! 
//! 
//! 
//! 
//! 
//! 
//! 
//! 
//! 
//! 
//! 
//! 
//! 
//! 
//! 
//! 
//! 
//! 
//! 
//! 
//! 
//! 
//! 
//! 
//! 
//! 
//! 
//! 
//! 
//! 
//! 
//! 
//! 

pub struct Lenght{
	pub lenght_type: String,
	pub value: f64
}

impl Lenght{
	pub fn new() -> Lenght{
		Lenght{
			lenght_type: String::from("Meter"),
			value: 0f64
		}
	}
	pub fn to_yoctometre(&self) -> f64{
		return self.to_metre() * 1_000_000_000_000_000_000_000_000.0; 
	}
	pub fn to_zeptometre(&self) -> f64{
		return self.to_metre() * 1_000_000_000_000_000_000_000_000.0; 
	}
	pub fn to_attometre(&self) -> f64{
		return self.to_metre() * 1_000_000_000_000_000_000_000_000.0; 
	}
	pub fn to_femtometre(&self) -> f64{
		return self.to_metre() * 1_000_000_000_000_000_000_000_000.0; 
	}
	pub fn to_picometre(&self) -> f64{
		return self.to_metre() * 1_000_000_000_000_000_000_000_000.0; 
	}
	pub fn to_nanometre(&self) -> f64{
		return self.to_metre() * 1_000_000_000_000_000_000_000_000.0; 
	}
	pub fn to_micrometre(&self) -> f64{
		return self.to_metre() * 1_000_000_000_000_000_000_000_000.0; 
	}
	pub fn to_millimetre(&self) -> f64{
		return self.to_metre() * 1_000_000_000_000_000_000_000_000.0; 
	}
	pub fn to_centimetre(&self) -> f64{
		return self.to_metre() * 1_000_000_000_000_000_000_000_000.0; 
	}
	pub fn to_decimetre(&self) -> f64{
		return self.to_metre() * 1_000_000_000_000_000_000_000_000.0; 
	}
	pub fn to_metre(&self) -> f64{
		if self.value > 1_000_000_000_000_000_000.0{
			println!("The value exceeded the limit of 1 Quintillion (10^18)");
			return self.value;
		}
		else {
			if self.lenght_type == String::from("Yoctometre"){
				return self.value / 1_000_000_000_000_000_000_000_000.0;
			}
			else if self.lenght_type == String::from("Zeptometre") {
				return self.value / 1_000_000_000_000_000_000_000.0;
			}
			else if self.lenght_type == String::from("Attometre") {
				return self.value / 1_000_000_000_000_000_000.0;
			}
			else if self.lenght_type == String::from("Femtometre") {
				return self.value / 1_000_000_000_000_000.0;
			}
			else if self.lenght_type == String::from("Picometre") {
				return self.value / 1_000_000_000_000.0;
			}
			else if self.lenght_type == String::from("Nanometre") {
				return self.value / 1_000_000_000.0;
			}
			else if self.lenght_type == String::from("Micrometre") {
				return self.value / 1_000_000.0;
			}
			else if self.lenght_type == String::from("Millimetre") {
				return self.value / 1_000.0;
			}
			else if self.lenght_type == String::from("Centimetre") {
				return self.value / 100.0;
			}
			else if self.lenght_type == String::from("Decimetre") {
				return self.value / 10.0;
			}
			else if self.lenght_type == String::from("Metre") {
				return self.value;
			}
			else if self.lenght_type == String::from("Decametre") {
				return self.value * 10.0;
			}
			else if self.lenght_type == String::from("Hectometre") {
				return self.value * 100.0;
			}
			else if self.lenght_type == String::from("Kilometre") {
				return self.value * 1_000.0;
			}
			else if self.lenght_type == String::from("Megametre") {
				return self.value * 1_000_000.0;
			}
			else if self.lenght_type == String::from("Gigametre") {
				return self.value * 1_000_000_000.0;
			}
			else if self.lenght_type == String::from("Terametre") {
				return self.value * 1_000_000_000_000.0;
			}
			else if self.lenght_type == String::from("Petametre") {
				return self.value * 1_000_000_000_000_000.0;
			}
			else if self.lenght_type == String::from("Exametre") {
				return self.value * 1_000_000_000_000_000_000.0;
			}
			else if self.lenght_type == String::from("Zettametre") {
				return self.value * 1_000_000_000_000_000_000_000.0;
			}
			else if self.lenght_type == String::from("Yottametre") {
				return self.value * 1_000_000_000_000_000_000_000_000.0;
			}
			else if self.lenght_type == String::from("Mile") {
				return self.value * 1609.344;
			}
			else if self.lenght_type == String::from("Yard") {
				return self.value / 9.144;
			}
			else if self.lenght_type == String::from("Foot") {
				return self.value / 3.048;
			}
			else if self.lenght_type == String::from("Inche") {
				return self.value / 25.4;
			}
			else if self.lenght_type == String::from("Rod") {
				return self.value * 5.0292;
			}
			else if self.lenght_type == String::from("Chain") {
				return self.value * 20.1168;
			}
			else if self.lenght_type == String::from("Light-year") {
				return self.value * (9.461 * 1_000_000_000_000_000.0);
			}
			else {
				println!("The lenght type is not valid");
				return self.value;
			}
		}
	}
	pub fn to_decametre(&self) -> f64{
		return self.to_metre() / 10.0; 
	}
	pub fn to_hectometre(&self) -> f64{
		return self.to_metre() / 100.0; 
	}
	pub fn to_kilometre(&self) -> f64{
		return self.to_metre() / 1_000.0; 
	}
	pub fn to_megametre(&self) -> f64{
		return self.to_metre() / 1_000_000.0; 
	}
	pub fn to_gigametre(&self) -> f64{
		return self.to_metre() / 1_000_000_000.0; 
	}
	pub fn to_terametre(&self) -> f64{
		return self.to_metre() / 1_000_000_000_000.0; 
	}
	pub fn to_petametre(&self) -> f64{
		return self.to_metre() / 1_000_000_000_000_000.0; 
	}
	pub fn to_exametre(&self) -> f64{
		return self.to_metre() / 1_000_000_000_000_000_000.0; 
	}
	pub fn to_zettametre(&self) -> f64{
		return self.to_metre() / 1_000_000_000_000_000_000_000.0; 
	}
	pub fn to_yottametre(&self) -> f64{
		return self.to_metre() / 1_000_000_000_000_000_000_000_000.0; 
	}
	pub fn to_mile(&self) -> f64{
		return self.to_metre() / 1609.0;
	}
	pub fn to_yard(&self) -> f64{
		return self.to_metre() * 1.094;
	}
	pub fn to_foot(&self) -> f64{
		return self.to_metre() / 3.281;
	}
	pub fn to_inch(&self) -> f64{
		return self.to_metre() * 39.37;
	}
	pub fn to_light_year(&self) -> f64{
		return self.to_metre() / (9.461 * 1_000_000_000_000_000.0); 
	}
	pub fn to_rod(&self) -> f64{
		return self.to_metre() / 5.029; 
	}
	pub fn to_chain(&self) -> f64{
		return self.to_metre() / 20.117; 
	}
}