From 1b5135606b0cef10ea083e333fc7c1b40834c4aa Mon Sep 17 00:00:00 2001 From: fabolous005 Date: Sat, 18 Nov 2023 20:16:58 +0100 Subject: [PATCH] use the double digit Element instead of two single without Electron number --- README.md | 5 +- src/main.rs | 234 ++++++++++++++++++++++++++++------------------------ 2 files changed, 130 insertions(+), 109 deletions(-) diff --git a/README.md b/README.md index 2294985..85e610a 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,6 @@ # isomer -Calculate isomer for given Elements \ No newline at end of file +Calculate isomer for given Elements + +FH will expand to Hafnium. +To use F1H1 write like this: F1H1 or F1H diff --git a/src/main.rs b/src/main.rs index 3e4e63f..de292e4 100644 --- a/src/main.rs +++ b/src/main.rs @@ -16,7 +16,7 @@ fn main() { let input = args[1].to_string(); for char in input.chars() { - println!("{:?}", element); + println!(); if element.is_some() { println!("element is some"); element_line.push(element.unwrap()); @@ -28,111 +28,129 @@ fn main() { let mut short = char_before.unwrap().to_uppercase().next().unwrap().to_string(); short.push(char.to_uppercase().next().unwrap()); element = match short.as_str() { - "AC" => Some(&periodic_table::elements::AC), - "AG" => Some(&periodic_table::elements::AG), - "AL" => Some(&periodic_table::elements::AL), - "AM" => Some(&periodic_table::elements::AM), - "AR" => Some(&periodic_table::elements::AR), - "AS" => Some(&periodic_table::elements::AS), - "AT" => Some(&periodic_table::elements::AT), - "AU" => Some(&periodic_table::elements::AU), - "BA" => Some(&periodic_table::elements::BA), - "BE" => Some(&periodic_table::elements::BE), - "BH" => Some(&periodic_table::elements::BH), - "BI" => Some(&periodic_table::elements::BI), - "BK" => Some(&periodic_table::elements::BK), - "BR" => Some(&periodic_table::elements::BR), - "CA" => Some(&periodic_table::elements::CA), - "CD" => Some(&periodic_table::elements::CD), - "CE" => Some(&periodic_table::elements::CE), - "CF" => Some(&periodic_table::elements::CF), - "CL" => Some(&periodic_table::elements::CL), - "CM" => Some(&periodic_table::elements::CM), - "CN" => Some(&periodic_table::elements::CN), - "CO" => Some(&periodic_table::elements::CO), - "CR" => Some(&periodic_table::elements::CR), - "CS" => Some(&periodic_table::elements::CS), - "CU" => Some(&periodic_table::elements::CU), - "DB" => Some(&periodic_table::elements::DB), - "DS" => Some(&periodic_table::elements::DS), - "DY" => Some(&periodic_table::elements::DY), - "ER" => Some(&periodic_table::elements::ER), - "ES" => Some(&periodic_table::elements::ES), - "EU" => Some(&periodic_table::elements::EU), - "FE" => Some(&periodic_table::elements::FE), - "FL" => Some(&periodic_table::elements::FL), - "FM" => Some(&periodic_table::elements::FM), - "FR" => Some(&periodic_table::elements::FR), - "GA" => Some(&periodic_table::elements::GA), - "GD" => Some(&periodic_table::elements::GD), - "GE" => Some(&periodic_table::elements::GE), - "HE" => Some(&periodic_table::elements::HE), - "HF" => Some(&periodic_table::elements::HF), - "HG" => Some(&periodic_table::elements::HG), - "HO" => Some(&periodic_table::elements::HO), - "HS" => Some(&periodic_table::elements::HS), - "IN" => Some(&periodic_table::elements::IN), - "IR" => Some(&periodic_table::elements::IR), - "KR" => Some(&periodic_table::elements::KR), - "LA" => Some(&periodic_table::elements::LA), - "LI" => Some(&periodic_table::elements::LI), - "LR" => Some(&periodic_table::elements::LR), - "LU" => Some(&periodic_table::elements::LU), - "LV" => Some(&periodic_table::elements::LV), - "MC" => Some(&periodic_table::elements::MC), - "MD" => Some(&periodic_table::elements::MD), - "MG" => Some(&periodic_table::elements::MG), - "MN" => Some(&periodic_table::elements::MN), - "MO" => Some(&periodic_table::elements::MO), - "MT" => Some(&periodic_table::elements::MT), - "NA" => Some(&periodic_table::elements::NA), - "NB" => Some(&periodic_table::elements::NB), - "ND" => Some(&periodic_table::elements::ND), - "NE" => Some(&periodic_table::elements::NE), - "NH" => Some(&periodic_table::elements::NH), - "NI" => Some(&periodic_table::elements::NI), - "NO" => Some(&periodic_table::elements::NO), - "NP" => Some(&periodic_table::elements::NP), - "OG" => Some(&periodic_table::elements::OG), - "OS" => Some(&periodic_table::elements::OS), - "PA" => Some(&periodic_table::elements::PA), - "PB" => Some(&periodic_table::elements::PB), - "PD" => Some(&periodic_table::elements::PD), - "PM" => Some(&periodic_table::elements::PM), - "PO" => Some(&periodic_table::elements::PO), - "PR" => Some(&periodic_table::elements::PR), - "PT" => Some(&periodic_table::elements::PT), - "PU" => Some(&periodic_table::elements::PU), - "RA" => Some(&periodic_table::elements::RA), - "RB" => Some(&periodic_table::elements::RB), - "RE" => Some(&periodic_table::elements::RE), - "RF" => Some(&periodic_table::elements::RF), - "RG" => Some(&periodic_table::elements::RG), - "RH" => Some(&periodic_table::elements::RH), - "RN" => Some(&periodic_table::elements::RN), - "RU" => Some(&periodic_table::elements::RU), - "SB" => Some(&periodic_table::elements::SB), - "SC" => Some(&periodic_table::elements::SC), - "SE" => Some(&periodic_table::elements::SE), - "SG" => Some(&periodic_table::elements::SG), - "SI" => Some(&periodic_table::elements::SI), - "SM" => Some(&periodic_table::elements::SM), - "SN" => Some(&periodic_table::elements::SN), - "SR" => Some(&periodic_table::elements::SR), - "TA" => Some(&periodic_table::elements::TA), - "TB" => Some(&periodic_table::elements::TB), - "TC" => Some(&periodic_table::elements::TC), - "TE" => Some(&periodic_table::elements::TE), - "TH" => Some(&periodic_table::elements::TH), - "TI" => Some(&periodic_table::elements::TI), - "TL" => Some(&periodic_table::elements::TL), - "TM" => Some(&periodic_table::elements::TM), - "TS" => Some(&periodic_table::elements::TS), - "XE" => Some(&periodic_table::elements::XE), - "YB" => Some(&periodic_table::elements::YB), - "ZN" => Some(&periodic_table::elements::ZN), - "ZR" => Some(&periodic_table::elements::ZR), - _ => panic!("Could not find element") + "AC" => { element_line.pop(); Some(&periodic_table::elements::AC) }, + "AG" => { element_line.pop(); Some(&periodic_table::elements::AG) }, + "AL" => { element_line.pop(); Some(&periodic_table::elements::AL) }, + "AM" => { element_line.pop(); Some(&periodic_table::elements::AM) }, + "AR" => { element_line.pop(); Some(&periodic_table::elements::AR) }, + "AS" => { element_line.pop(); Some(&periodic_table::elements::AS) }, + "AT" => { element_line.pop(); Some(&periodic_table::elements::AT) }, + "AU" => { element_line.pop(); Some(&periodic_table::elements::AU) }, + "BA" => { element_line.pop(); Some(&periodic_table::elements::BA) }, + "BE" => { element_line.pop(); Some(&periodic_table::elements::BE) }, + "BH" => { element_line.pop(); Some(&periodic_table::elements::BH) }, + "BI" => { element_line.pop(); Some(&periodic_table::elements::BI) }, + "BK" => { element_line.pop(); Some(&periodic_table::elements::BK) }, + "BR" => { element_line.pop(); Some(&periodic_table::elements::BR) }, + "CA" => { element_line.pop(); Some(&periodic_table::elements::CA) }, + "CD" => { element_line.pop(); Some(&periodic_table::elements::CD) }, + "CE" => { element_line.pop(); Some(&periodic_table::elements::CE) }, + "CF" => { element_line.pop(); Some(&periodic_table::elements::CF) }, + "CL" => { element_line.pop(); Some(&periodic_table::elements::CL) }, + "CM" => { element_line.pop(); Some(&periodic_table::elements::CM) }, + "CN" => { element_line.pop(); Some(&periodic_table::elements::CN) }, + "CO" => { element_line.pop(); Some(&periodic_table::elements::CO) }, + "CR" => { element_line.pop(); Some(&periodic_table::elements::CR) }, + "CS" => { element_line.pop(); Some(&periodic_table::elements::CS) }, + "CU" => { element_line.pop(); Some(&periodic_table::elements::CU) }, + "DB" => { element_line.pop(); Some(&periodic_table::elements::DB) }, + "DS" => { element_line.pop(); Some(&periodic_table::elements::DS) }, + "DY" => { element_line.pop(); Some(&periodic_table::elements::DY) }, + "ER" => { element_line.pop(); Some(&periodic_table::elements::ER) }, + "ES" => { element_line.pop(); Some(&periodic_table::elements::ES) }, + "EU" => { element_line.pop(); Some(&periodic_table::elements::EU) }, + "FE" => { element_line.pop(); Some(&periodic_table::elements::FE) }, + "FL" => { element_line.pop(); Some(&periodic_table::elements::FL) }, + "FM" => { element_line.pop(); Some(&periodic_table::elements::FM) }, + "FR" => { element_line.pop(); Some(&periodic_table::elements::FR) }, + "GA" => { element_line.pop(); Some(&periodic_table::elements::GA) }, + "GD" => { element_line.pop(); Some(&periodic_table::elements::GD) }, + "GE" => { element_line.pop(); Some(&periodic_table::elements::GE) }, + "HE" => { element_line.pop(); Some(&periodic_table::elements::HE) }, + "HF" => { element_line.pop(); Some(&periodic_table::elements::HF) }, + "HG" => { element_line.pop(); Some(&periodic_table::elements::HG) }, + "HO" => { element_line.pop(); Some(&periodic_table::elements::HO) }, + "HS" => { element_line.pop(); Some(&periodic_table::elements::HS) }, + "IN" => { element_line.pop(); Some(&periodic_table::elements::IN) }, + "IR" => { element_line.pop(); Some(&periodic_table::elements::IR) }, + "KR" => { element_line.pop(); Some(&periodic_table::elements::KR) }, + "LA" => { element_line.pop(); Some(&periodic_table::elements::LA) }, + "LI" => { element_line.pop(); Some(&periodic_table::elements::LI) }, + "LR" => { element_line.pop(); Some(&periodic_table::elements::LR) }, + "LU" => { element_line.pop(); Some(&periodic_table::elements::LU) }, + "LV" => { element_line.pop(); Some(&periodic_table::elements::LV) }, + "MC" => { element_line.pop(); Some(&periodic_table::elements::MC) }, + "MD" => { element_line.pop(); Some(&periodic_table::elements::MD) }, + "MG" => { element_line.pop(); Some(&periodic_table::elements::MG) }, + "MN" => { element_line.pop(); Some(&periodic_table::elements::MN) }, + "MO" => { element_line.pop(); Some(&periodic_table::elements::MO) }, + "MT" => { element_line.pop(); Some(&periodic_table::elements::MT) }, + "NA" => { element_line.pop(); Some(&periodic_table::elements::NA) }, + "NB" => { element_line.pop(); Some(&periodic_table::elements::NB) }, + "ND" => { element_line.pop(); Some(&periodic_table::elements::ND) }, + "NE" => { element_line.pop(); Some(&periodic_table::elements::NE) }, + "NH" => { element_line.pop(); Some(&periodic_table::elements::NH) }, + "NI" => { element_line.pop(); Some(&periodic_table::elements::NI) }, + "NO" => { element_line.pop(); Some(&periodic_table::elements::NO) }, + "NP" => { element_line.pop(); Some(&periodic_table::elements::NP) }, + "OG" => { element_line.pop(); Some(&periodic_table::elements::OG) }, + "OS" => { element_line.pop(); Some(&periodic_table::elements::OS) }, + "PA" => { element_line.pop(); Some(&periodic_table::elements::PA) }, + "PB" => { element_line.pop(); Some(&periodic_table::elements::PB) }, + "PD" => { element_line.pop(); Some(&periodic_table::elements::PD) }, + "PM" => { element_line.pop(); Some(&periodic_table::elements::PM) }, + "PO" => { element_line.pop(); Some(&periodic_table::elements::PO) }, + "PR" => { element_line.pop(); Some(&periodic_table::elements::PR) }, + "PT" => { element_line.pop(); Some(&periodic_table::elements::PT) }, + "PU" => { element_line.pop(); Some(&periodic_table::elements::PU) }, + "RA" => { element_line.pop(); Some(&periodic_table::elements::RA) }, + "RB" => { element_line.pop(); Some(&periodic_table::elements::RB) }, + "RE" => { element_line.pop(); Some(&periodic_table::elements::RE) }, + "RF" => { element_line.pop(); Some(&periodic_table::elements::RF) }, + "RG" => { element_line.pop(); Some(&periodic_table::elements::RG) }, + "RH" => { element_line.pop(); Some(&periodic_table::elements::RH) }, + "RN" => { element_line.pop(); Some(&periodic_table::elements::RN) }, + "RU" => { element_line.pop(); Some(&periodic_table::elements::RU) }, + "SB" => { element_line.pop(); Some(&periodic_table::elements::SB) }, + "SC" => { element_line.pop(); Some(&periodic_table::elements::SC) }, + "SE" => { element_line.pop(); Some(&periodic_table::elements::SE) }, + "SG" => { element_line.pop(); Some(&periodic_table::elements::SG) }, + "SI" => { element_line.pop(); Some(&periodic_table::elements::SI) }, + "SM" => { element_line.pop(); Some(&periodic_table::elements::SM) }, + "SN" => { element_line.pop(); Some(&periodic_table::elements::SN) }, + "SR" => { element_line.pop(); Some(&periodic_table::elements::SR) }, + "TA" => { element_line.pop(); Some(&periodic_table::elements::TA) }, + "TB" => { element_line.pop(); Some(&periodic_table::elements::TB) }, + "TC" => { element_line.pop(); Some(&periodic_table::elements::TC) }, + "TE" => { element_line.pop(); Some(&periodic_table::elements::TE) }, + "TH" => { element_line.pop(); Some(&periodic_table::elements::TH) }, + "TI" => { element_line.pop(); Some(&periodic_table::elements::TI) }, + "TL" => { element_line.pop(); Some(&periodic_table::elements::TL) }, + "TM" => { element_line.pop(); Some(&periodic_table::elements::TM) }, + "TS" => { element_line.pop(); Some(&periodic_table::elements::TS) }, + "XE" => { element_line.pop(); Some(&periodic_table::elements::XE) }, + "YB" => { element_line.pop(); Some(&periodic_table::elements::YB) }, + "ZN" => { element_line.pop(); Some(&periodic_table::elements::ZN) }, + "ZR" => { element_line.pop(); Some(&periodic_table::elements::ZR) }, + _ => { + 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; } else { @@ -154,9 +172,9 @@ fn main() { 'Y' => Some(&periodic_table::elements::Y), _ => None }; - if element.is_none() { + // if element.is_none() { char_before = Some(char); - } + // } } } else if char.is_ascii_digit() { println!("matched ascii digit");