use the double digit Element instead of two single without Electron number

This commit is contained in:
fabolous005 2023-11-18 20:16:58 +01:00
parent 1e99cbbb85
commit 1b5135606b
2 changed files with 130 additions and 109 deletions

View File

@ -1,3 +1,6 @@
# isomer # isomer
Calculate isomer for given Elements Calculate isomer for given Elements
FH will expand to Hafnium.
To use F1H1 write like this: F1H1 or F1H

View File

@ -16,7 +16,7 @@ fn main() {
let input = args[1].to_string(); let input = args[1].to_string();
for char in input.chars() { for char in input.chars() {
println!("{:?}", element); println!();
if element.is_some() { if element.is_some() {
println!("element is some"); println!("element is some");
element_line.push(element.unwrap()); element_line.push(element.unwrap());
@ -28,111 +28,129 @@ fn main() {
let mut short = char_before.unwrap().to_uppercase().next().unwrap().to_string(); let mut short = char_before.unwrap().to_uppercase().next().unwrap().to_string();
short.push(char.to_uppercase().next().unwrap()); short.push(char.to_uppercase().next().unwrap());
element = match short.as_str() { element = match short.as_str() {
"AC" => Some(&periodic_table::elements::AC), "AC" => { element_line.pop(); Some(&periodic_table::elements::AC) },
"AG" => Some(&periodic_table::elements::AG), "AG" => { element_line.pop(); Some(&periodic_table::elements::AG) },
"AL" => Some(&periodic_table::elements::AL), "AL" => { element_line.pop(); Some(&periodic_table::elements::AL) },
"AM" => Some(&periodic_table::elements::AM), "AM" => { element_line.pop(); Some(&periodic_table::elements::AM) },
"AR" => Some(&periodic_table::elements::AR), "AR" => { element_line.pop(); Some(&periodic_table::elements::AR) },
"AS" => Some(&periodic_table::elements::AS), "AS" => { element_line.pop(); Some(&periodic_table::elements::AS) },
"AT" => Some(&periodic_table::elements::AT), "AT" => { element_line.pop(); Some(&periodic_table::elements::AT) },
"AU" => Some(&periodic_table::elements::AU), "AU" => { element_line.pop(); Some(&periodic_table::elements::AU) },
"BA" => Some(&periodic_table::elements::BA), "BA" => { element_line.pop(); Some(&periodic_table::elements::BA) },
"BE" => Some(&periodic_table::elements::BE), "BE" => { element_line.pop(); Some(&periodic_table::elements::BE) },
"BH" => Some(&periodic_table::elements::BH), "BH" => { element_line.pop(); Some(&periodic_table::elements::BH) },
"BI" => Some(&periodic_table::elements::BI), "BI" => { element_line.pop(); Some(&periodic_table::elements::BI) },
"BK" => Some(&periodic_table::elements::BK), "BK" => { element_line.pop(); Some(&periodic_table::elements::BK) },
"BR" => Some(&periodic_table::elements::BR), "BR" => { element_line.pop(); Some(&periodic_table::elements::BR) },
"CA" => Some(&periodic_table::elements::CA), "CA" => { element_line.pop(); Some(&periodic_table::elements::CA) },
"CD" => Some(&periodic_table::elements::CD), "CD" => { element_line.pop(); Some(&periodic_table::elements::CD) },
"CE" => Some(&periodic_table::elements::CE), "CE" => { element_line.pop(); Some(&periodic_table::elements::CE) },
"CF" => Some(&periodic_table::elements::CF), "CF" => { element_line.pop(); Some(&periodic_table::elements::CF) },
"CL" => Some(&periodic_table::elements::CL), "CL" => { element_line.pop(); Some(&periodic_table::elements::CL) },
"CM" => Some(&periodic_table::elements::CM), "CM" => { element_line.pop(); Some(&periodic_table::elements::CM) },
"CN" => Some(&periodic_table::elements::CN), "CN" => { element_line.pop(); Some(&periodic_table::elements::CN) },
"CO" => Some(&periodic_table::elements::CO), "CO" => { element_line.pop(); Some(&periodic_table::elements::CO) },
"CR" => Some(&periodic_table::elements::CR), "CR" => { element_line.pop(); Some(&periodic_table::elements::CR) },
"CS" => Some(&periodic_table::elements::CS), "CS" => { element_line.pop(); Some(&periodic_table::elements::CS) },
"CU" => Some(&periodic_table::elements::CU), "CU" => { element_line.pop(); Some(&periodic_table::elements::CU) },
"DB" => Some(&periodic_table::elements::DB), "DB" => { element_line.pop(); Some(&periodic_table::elements::DB) },
"DS" => Some(&periodic_table::elements::DS), "DS" => { element_line.pop(); Some(&periodic_table::elements::DS) },
"DY" => Some(&periodic_table::elements::DY), "DY" => { element_line.pop(); Some(&periodic_table::elements::DY) },
"ER" => Some(&periodic_table::elements::ER), "ER" => { element_line.pop(); Some(&periodic_table::elements::ER) },
"ES" => Some(&periodic_table::elements::ES), "ES" => { element_line.pop(); Some(&periodic_table::elements::ES) },
"EU" => Some(&periodic_table::elements::EU), "EU" => { element_line.pop(); Some(&periodic_table::elements::EU) },
"FE" => Some(&periodic_table::elements::FE), "FE" => { element_line.pop(); Some(&periodic_table::elements::FE) },
"FL" => Some(&periodic_table::elements::FL), "FL" => { element_line.pop(); Some(&periodic_table::elements::FL) },
"FM" => Some(&periodic_table::elements::FM), "FM" => { element_line.pop(); Some(&periodic_table::elements::FM) },
"FR" => Some(&periodic_table::elements::FR), "FR" => { element_line.pop(); Some(&periodic_table::elements::FR) },
"GA" => Some(&periodic_table::elements::GA), "GA" => { element_line.pop(); Some(&periodic_table::elements::GA) },
"GD" => Some(&periodic_table::elements::GD), "GD" => { element_line.pop(); Some(&periodic_table::elements::GD) },
"GE" => Some(&periodic_table::elements::GE), "GE" => { element_line.pop(); Some(&periodic_table::elements::GE) },
"HE" => Some(&periodic_table::elements::HE), "HE" => { element_line.pop(); Some(&periodic_table::elements::HE) },
"HF" => Some(&periodic_table::elements::HF), "HF" => { element_line.pop(); Some(&periodic_table::elements::HF) },
"HG" => Some(&periodic_table::elements::HG), "HG" => { element_line.pop(); Some(&periodic_table::elements::HG) },
"HO" => Some(&periodic_table::elements::HO), "HO" => { element_line.pop(); Some(&periodic_table::elements::HO) },
"HS" => Some(&periodic_table::elements::HS), "HS" => { element_line.pop(); Some(&periodic_table::elements::HS) },
"IN" => Some(&periodic_table::elements::IN), "IN" => { element_line.pop(); Some(&periodic_table::elements::IN) },
"IR" => Some(&periodic_table::elements::IR), "IR" => { element_line.pop(); Some(&periodic_table::elements::IR) },
"KR" => Some(&periodic_table::elements::KR), "KR" => { element_line.pop(); Some(&periodic_table::elements::KR) },
"LA" => Some(&periodic_table::elements::LA), "LA" => { element_line.pop(); Some(&periodic_table::elements::LA) },
"LI" => Some(&periodic_table::elements::LI), "LI" => { element_line.pop(); Some(&periodic_table::elements::LI) },
"LR" => Some(&periodic_table::elements::LR), "LR" => { element_line.pop(); Some(&periodic_table::elements::LR) },
"LU" => Some(&periodic_table::elements::LU), "LU" => { element_line.pop(); Some(&periodic_table::elements::LU) },
"LV" => Some(&periodic_table::elements::LV), "LV" => { element_line.pop(); Some(&periodic_table::elements::LV) },
"MC" => Some(&periodic_table::elements::MC), "MC" => { element_line.pop(); Some(&periodic_table::elements::MC) },
"MD" => Some(&periodic_table::elements::MD), "MD" => { element_line.pop(); Some(&periodic_table::elements::MD) },
"MG" => Some(&periodic_table::elements::MG), "MG" => { element_line.pop(); Some(&periodic_table::elements::MG) },
"MN" => Some(&periodic_table::elements::MN), "MN" => { element_line.pop(); Some(&periodic_table::elements::MN) },
"MO" => Some(&periodic_table::elements::MO), "MO" => { element_line.pop(); Some(&periodic_table::elements::MO) },
"MT" => Some(&periodic_table::elements::MT), "MT" => { element_line.pop(); Some(&periodic_table::elements::MT) },
"NA" => Some(&periodic_table::elements::NA), "NA" => { element_line.pop(); Some(&periodic_table::elements::NA) },
"NB" => Some(&periodic_table::elements::NB), "NB" => { element_line.pop(); Some(&periodic_table::elements::NB) },
"ND" => Some(&periodic_table::elements::ND), "ND" => { element_line.pop(); Some(&periodic_table::elements::ND) },
"NE" => Some(&periodic_table::elements::NE), "NE" => { element_line.pop(); Some(&periodic_table::elements::NE) },
"NH" => Some(&periodic_table::elements::NH), "NH" => { element_line.pop(); Some(&periodic_table::elements::NH) },
"NI" => Some(&periodic_table::elements::NI), "NI" => { element_line.pop(); Some(&periodic_table::elements::NI) },
"NO" => Some(&periodic_table::elements::NO), "NO" => { element_line.pop(); Some(&periodic_table::elements::NO) },
"NP" => Some(&periodic_table::elements::NP), "NP" => { element_line.pop(); Some(&periodic_table::elements::NP) },
"OG" => Some(&periodic_table::elements::OG), "OG" => { element_line.pop(); Some(&periodic_table::elements::OG) },
"OS" => Some(&periodic_table::elements::OS), "OS" => { element_line.pop(); Some(&periodic_table::elements::OS) },
"PA" => Some(&periodic_table::elements::PA), "PA" => { element_line.pop(); Some(&periodic_table::elements::PA) },
"PB" => Some(&periodic_table::elements::PB), "PB" => { element_line.pop(); Some(&periodic_table::elements::PB) },
"PD" => Some(&periodic_table::elements::PD), "PD" => { element_line.pop(); Some(&periodic_table::elements::PD) },
"PM" => Some(&periodic_table::elements::PM), "PM" => { element_line.pop(); Some(&periodic_table::elements::PM) },
"PO" => Some(&periodic_table::elements::PO), "PO" => { element_line.pop(); Some(&periodic_table::elements::PO) },
"PR" => Some(&periodic_table::elements::PR), "PR" => { element_line.pop(); Some(&periodic_table::elements::PR) },
"PT" => Some(&periodic_table::elements::PT), "PT" => { element_line.pop(); Some(&periodic_table::elements::PT) },
"PU" => Some(&periodic_table::elements::PU), "PU" => { element_line.pop(); Some(&periodic_table::elements::PU) },
"RA" => Some(&periodic_table::elements::RA), "RA" => { element_line.pop(); Some(&periodic_table::elements::RA) },
"RB" => Some(&periodic_table::elements::RB), "RB" => { element_line.pop(); Some(&periodic_table::elements::RB) },
"RE" => Some(&periodic_table::elements::RE), "RE" => { element_line.pop(); Some(&periodic_table::elements::RE) },
"RF" => Some(&periodic_table::elements::RF), "RF" => { element_line.pop(); Some(&periodic_table::elements::RF) },
"RG" => Some(&periodic_table::elements::RG), "RG" => { element_line.pop(); Some(&periodic_table::elements::RG) },
"RH" => Some(&periodic_table::elements::RH), "RH" => { element_line.pop(); Some(&periodic_table::elements::RH) },
"RN" => Some(&periodic_table::elements::RN), "RN" => { element_line.pop(); Some(&periodic_table::elements::RN) },
"RU" => Some(&periodic_table::elements::RU), "RU" => { element_line.pop(); Some(&periodic_table::elements::RU) },
"SB" => Some(&periodic_table::elements::SB), "SB" => { element_line.pop(); Some(&periodic_table::elements::SB) },
"SC" => Some(&periodic_table::elements::SC), "SC" => { element_line.pop(); Some(&periodic_table::elements::SC) },
"SE" => Some(&periodic_table::elements::SE), "SE" => { element_line.pop(); Some(&periodic_table::elements::SE) },
"SG" => Some(&periodic_table::elements::SG), "SG" => { element_line.pop(); Some(&periodic_table::elements::SG) },
"SI" => Some(&periodic_table::elements::SI), "SI" => { element_line.pop(); Some(&periodic_table::elements::SI) },
"SM" => Some(&periodic_table::elements::SM), "SM" => { element_line.pop(); Some(&periodic_table::elements::SM) },
"SN" => Some(&periodic_table::elements::SN), "SN" => { element_line.pop(); Some(&periodic_table::elements::SN) },
"SR" => Some(&periodic_table::elements::SR), "SR" => { element_line.pop(); Some(&periodic_table::elements::SR) },
"TA" => Some(&periodic_table::elements::TA), "TA" => { element_line.pop(); Some(&periodic_table::elements::TA) },
"TB" => Some(&periodic_table::elements::TB), "TB" => { element_line.pop(); Some(&periodic_table::elements::TB) },
"TC" => Some(&periodic_table::elements::TC), "TC" => { element_line.pop(); Some(&periodic_table::elements::TC) },
"TE" => Some(&periodic_table::elements::TE), "TE" => { element_line.pop(); Some(&periodic_table::elements::TE) },
"TH" => Some(&periodic_table::elements::TH), "TH" => { element_line.pop(); Some(&periodic_table::elements::TH) },
"TI" => Some(&periodic_table::elements::TI), "TI" => { element_line.pop(); Some(&periodic_table::elements::TI) },
"TL" => Some(&periodic_table::elements::TL), "TL" => { element_line.pop(); Some(&periodic_table::elements::TL) },
"TM" => Some(&periodic_table::elements::TM), "TM" => { element_line.pop(); Some(&periodic_table::elements::TM) },
"TS" => Some(&periodic_table::elements::TS), "TS" => { element_line.pop(); Some(&periodic_table::elements::TS) },
"XE" => Some(&periodic_table::elements::XE), "XE" => { element_line.pop(); Some(&periodic_table::elements::XE) },
"YB" => Some(&periodic_table::elements::YB), "YB" => { element_line.pop(); Some(&periodic_table::elements::YB) },
"ZN" => Some(&periodic_table::elements::ZN), "ZN" => { element_line.pop(); Some(&periodic_table::elements::ZN) },
"ZR" => Some(&periodic_table::elements::ZR), "ZR" => { element_line.pop(); Some(&periodic_table::elements::ZR) },
_ => panic!("Could not find element") _ => {
match char.to_uppercase().next().unwrap() {
'B' => Some(&periodic_table::elements::B),
'C' => Some(&periodic_table::elements::C),
'F' => Some(&periodic_table::elements::F),
'H' => Some(&periodic_table::elements::H),
'I' => Some(&periodic_table::elements::I),
'K' => Some(&periodic_table::elements::K),
'N' => Some(&periodic_table::elements::N),
'O' => Some(&periodic_table::elements::O),
'P' => Some(&periodic_table::elements::P),
'S' => Some(&periodic_table::elements::S),
'U' => Some(&periodic_table::elements::U),
'V' => Some(&periodic_table::elements::V),
'W' => Some(&periodic_table::elements::W),
'Y' => Some(&periodic_table::elements::Y),
_ => None
}
}
}; };
char_before = None; char_before = None;
} else { } else {
@ -154,9 +172,9 @@ fn main() {
'Y' => Some(&periodic_table::elements::Y), 'Y' => Some(&periodic_table::elements::Y),
_ => None _ => None
}; };
if element.is_none() { // if element.is_none() {
char_before = Some(char); char_before = Some(char);
} // }
} }
} else if char.is_ascii_digit() { } else if char.is_ascii_digit() {
println!("matched ascii digit"); println!("matched ascii digit");