add digit validation
This commit is contained in:
parent
1b5135606b
commit
74f19d779d
@ -4,3 +4,4 @@ Calculate isomer for given Elements
|
|||||||
|
|
||||||
FH will expand to Hafnium.
|
FH will expand to Hafnium.
|
||||||
To use F1H1 write like this: F1H1 or F1H
|
To use F1H1 write like this: F1H1 or F1H
|
||||||
|
|
||||||
|
|||||||
284
src/main.rs
284
src/main.rs
@ -3,158 +3,161 @@
|
|||||||
use std::env;
|
use std::env;
|
||||||
use periodic_table::Element;
|
use periodic_table::Element;
|
||||||
|
|
||||||
|
#[derive(Debug)]
|
||||||
|
struct ElementNr<'a> {
|
||||||
|
element : &'a Element,
|
||||||
|
nr : u32
|
||||||
|
}
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
let mut args = vec![];
|
let mut args = vec![];
|
||||||
for argument in env::args() {
|
for argument in env::args() {
|
||||||
args.push(argument);
|
args.push(argument);
|
||||||
}
|
}
|
||||||
println!("{:?}", args);
|
|
||||||
|
|
||||||
let mut char_before: Option<char> = None;
|
let mut char_before: Option<char> = None;
|
||||||
let mut element: Option<&Element> = None;
|
let mut element: Option<&Element> = None;
|
||||||
let mut element_line: Vec<&Element> = vec![]; // TODO: this should also include the number of atoms
|
let mut element_line: Vec<ElementNr> = vec![];
|
||||||
|
let mut temp = false;
|
||||||
|
|
||||||
let input = args[1].to_string();
|
let input = args[1].to_string();
|
||||||
for char in input.chars() {
|
for char in input.chars() {
|
||||||
println!();
|
println!();
|
||||||
if element.is_some() {
|
|
||||||
println!("element is some");
|
|
||||||
element_line.push(element.unwrap());
|
|
||||||
}
|
|
||||||
if char.is_ascii_alphabetic() {
|
if char.is_ascii_alphabetic() {
|
||||||
println!("matched alphabetic");
|
// println!("matched alphabetic");
|
||||||
if char_before.is_some() {
|
if char_before.is_some() {
|
||||||
println!("char_before is some");
|
// println!("char_before is {char_before:?}");
|
||||||
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());
|
||||||
|
// println!("{}", short);
|
||||||
element = match short.as_str() {
|
element = match short.as_str() {
|
||||||
"AC" => { element_line.pop(); Some(&periodic_table::elements::AC) },
|
"AC" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::AC) },
|
||||||
"AG" => { element_line.pop(); Some(&periodic_table::elements::AG) },
|
"AG" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::AG) },
|
||||||
"AL" => { element_line.pop(); Some(&periodic_table::elements::AL) },
|
"AL" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::AL) },
|
||||||
"AM" => { element_line.pop(); Some(&periodic_table::elements::AM) },
|
"AM" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::AM) },
|
||||||
"AR" => { element_line.pop(); Some(&periodic_table::elements::AR) },
|
"AR" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::AR) },
|
||||||
"AS" => { element_line.pop(); Some(&periodic_table::elements::AS) },
|
"AS" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::AS) },
|
||||||
"AT" => { element_line.pop(); Some(&periodic_table::elements::AT) },
|
"AT" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::AT) },
|
||||||
"AU" => { element_line.pop(); Some(&periodic_table::elements::AU) },
|
"AU" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::AU) },
|
||||||
"BA" => { element_line.pop(); Some(&periodic_table::elements::BA) },
|
"BA" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::BA) },
|
||||||
"BE" => { element_line.pop(); Some(&periodic_table::elements::BE) },
|
"BE" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::BE) },
|
||||||
"BH" => { element_line.pop(); Some(&periodic_table::elements::BH) },
|
"BH" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::BH) },
|
||||||
"BI" => { element_line.pop(); Some(&periodic_table::elements::BI) },
|
"BI" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::BI) },
|
||||||
"BK" => { element_line.pop(); Some(&periodic_table::elements::BK) },
|
"BK" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::BK) },
|
||||||
"BR" => { element_line.pop(); Some(&periodic_table::elements::BR) },
|
"BR" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::BR) },
|
||||||
"CA" => { element_line.pop(); Some(&periodic_table::elements::CA) },
|
"CA" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::CA) },
|
||||||
"CD" => { element_line.pop(); Some(&periodic_table::elements::CD) },
|
"CD" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::CD) },
|
||||||
"CE" => { element_line.pop(); Some(&periodic_table::elements::CE) },
|
"CE" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::CE) },
|
||||||
"CF" => { element_line.pop(); Some(&periodic_table::elements::CF) },
|
"CF" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::CF) },
|
||||||
"CL" => { element_line.pop(); Some(&periodic_table::elements::CL) },
|
"CL" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::CL) },
|
||||||
"CM" => { element_line.pop(); Some(&periodic_table::elements::CM) },
|
"CM" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::CM) },
|
||||||
"CN" => { element_line.pop(); Some(&periodic_table::elements::CN) },
|
"CN" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::CN) },
|
||||||
"CO" => { element_line.pop(); Some(&periodic_table::elements::CO) },
|
"CO" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::CO) },
|
||||||
"CR" => { element_line.pop(); Some(&periodic_table::elements::CR) },
|
"CR" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::CR) },
|
||||||
"CS" => { element_line.pop(); Some(&periodic_table::elements::CS) },
|
"CS" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::CS) },
|
||||||
"CU" => { element_line.pop(); Some(&periodic_table::elements::CU) },
|
"CU" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::CU) },
|
||||||
"DB" => { element_line.pop(); Some(&periodic_table::elements::DB) },
|
"DB" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::DB) },
|
||||||
"DS" => { element_line.pop(); Some(&periodic_table::elements::DS) },
|
"DS" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::DS) },
|
||||||
"DY" => { element_line.pop(); Some(&periodic_table::elements::DY) },
|
"DY" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::DY) },
|
||||||
"ER" => { element_line.pop(); Some(&periodic_table::elements::ER) },
|
"ER" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::ER) },
|
||||||
"ES" => { element_line.pop(); Some(&periodic_table::elements::ES) },
|
"ES" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::ES) },
|
||||||
"EU" => { element_line.pop(); Some(&periodic_table::elements::EU) },
|
"EU" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::EU) },
|
||||||
"FE" => { element_line.pop(); Some(&periodic_table::elements::FE) },
|
"FE" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::FE) },
|
||||||
"FL" => { element_line.pop(); Some(&periodic_table::elements::FL) },
|
"FL" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::FL) },
|
||||||
"FM" => { element_line.pop(); Some(&periodic_table::elements::FM) },
|
"FM" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::FM) },
|
||||||
"FR" => { element_line.pop(); Some(&periodic_table::elements::FR) },
|
"FR" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::FR) },
|
||||||
"GA" => { element_line.pop(); Some(&periodic_table::elements::GA) },
|
"GA" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::GA) },
|
||||||
"GD" => { element_line.pop(); Some(&periodic_table::elements::GD) },
|
"GD" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::GD) },
|
||||||
"GE" => { element_line.pop(); Some(&periodic_table::elements::GE) },
|
"GE" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::GE) },
|
||||||
"HE" => { element_line.pop(); Some(&periodic_table::elements::HE) },
|
"HE" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::HE) },
|
||||||
"HF" => { element_line.pop(); Some(&periodic_table::elements::HF) },
|
"HF" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::HF) },
|
||||||
"HG" => { element_line.pop(); Some(&periodic_table::elements::HG) },
|
"HG" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::HG) },
|
||||||
"HO" => { element_line.pop(); Some(&periodic_table::elements::HO) },
|
"HO" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::HO) },
|
||||||
"HS" => { element_line.pop(); Some(&periodic_table::elements::HS) },
|
"HS" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::HS) },
|
||||||
"IN" => { element_line.pop(); Some(&periodic_table::elements::IN) },
|
"IN" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::IN) },
|
||||||
"IR" => { element_line.pop(); Some(&periodic_table::elements::IR) },
|
"IR" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::IR) },
|
||||||
"KR" => { element_line.pop(); Some(&periodic_table::elements::KR) },
|
"KR" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::KR) },
|
||||||
"LA" => { element_line.pop(); Some(&periodic_table::elements::LA) },
|
"LA" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::LA) },
|
||||||
"LI" => { element_line.pop(); Some(&periodic_table::elements::LI) },
|
"LI" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::LI) },
|
||||||
"LR" => { element_line.pop(); Some(&periodic_table::elements::LR) },
|
"LR" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::LR) },
|
||||||
"LU" => { element_line.pop(); Some(&periodic_table::elements::LU) },
|
"LU" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::LU) },
|
||||||
"LV" => { element_line.pop(); Some(&periodic_table::elements::LV) },
|
"LV" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::LV) },
|
||||||
"MC" => { element_line.pop(); Some(&periodic_table::elements::MC) },
|
"MC" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::MC) },
|
||||||
"MD" => { element_line.pop(); Some(&periodic_table::elements::MD) },
|
"MD" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::MD) },
|
||||||
"MG" => { element_line.pop(); Some(&periodic_table::elements::MG) },
|
"MG" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::MG) },
|
||||||
"MN" => { element_line.pop(); Some(&periodic_table::elements::MN) },
|
"MN" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::MN) },
|
||||||
"MO" => { element_line.pop(); Some(&periodic_table::elements::MO) },
|
"MO" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::MO) },
|
||||||
"MT" => { element_line.pop(); Some(&periodic_table::elements::MT) },
|
"MT" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::MT) },
|
||||||
"NA" => { element_line.pop(); Some(&periodic_table::elements::NA) },
|
"NA" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::NA) },
|
||||||
"NB" => { element_line.pop(); Some(&periodic_table::elements::NB) },
|
"NB" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::NB) },
|
||||||
"ND" => { element_line.pop(); Some(&periodic_table::elements::ND) },
|
"ND" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::ND) },
|
||||||
"NE" => { element_line.pop(); Some(&periodic_table::elements::NE) },
|
"NE" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::NE) },
|
||||||
"NH" => { element_line.pop(); Some(&periodic_table::elements::NH) },
|
"NH" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::NH) },
|
||||||
"NI" => { element_line.pop(); Some(&periodic_table::elements::NI) },
|
"NI" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::NI) },
|
||||||
"NO" => { element_line.pop(); Some(&periodic_table::elements::NO) },
|
"NO" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::NO) },
|
||||||
"NP" => { element_line.pop(); Some(&periodic_table::elements::NP) },
|
"NP" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::NP) },
|
||||||
"OG" => { element_line.pop(); Some(&periodic_table::elements::OG) },
|
"OG" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::OG) },
|
||||||
"OS" => { element_line.pop(); Some(&periodic_table::elements::OS) },
|
"OS" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::OS) },
|
||||||
"PA" => { element_line.pop(); Some(&periodic_table::elements::PA) },
|
"PA" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::PA) },
|
||||||
"PB" => { element_line.pop(); Some(&periodic_table::elements::PB) },
|
"PB" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::PB) },
|
||||||
"PD" => { element_line.pop(); Some(&periodic_table::elements::PD) },
|
"PD" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::PD) },
|
||||||
"PM" => { element_line.pop(); Some(&periodic_table::elements::PM) },
|
"PM" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::PM) },
|
||||||
"PO" => { element_line.pop(); Some(&periodic_table::elements::PO) },
|
"PO" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::PO) },
|
||||||
"PR" => { element_line.pop(); Some(&periodic_table::elements::PR) },
|
"PR" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::PR) },
|
||||||
"PT" => { element_line.pop(); Some(&periodic_table::elements::PT) },
|
"PT" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::PT) },
|
||||||
"PU" => { element_line.pop(); Some(&periodic_table::elements::PU) },
|
"PU" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::PU) },
|
||||||
"RA" => { element_line.pop(); Some(&periodic_table::elements::RA) },
|
"RA" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::RA) },
|
||||||
"RB" => { element_line.pop(); Some(&periodic_table::elements::RB) },
|
"RB" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::RB) },
|
||||||
"RE" => { element_line.pop(); Some(&periodic_table::elements::RE) },
|
"RE" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::RE) },
|
||||||
"RF" => { element_line.pop(); Some(&periodic_table::elements::RF) },
|
"RF" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::RF) },
|
||||||
"RG" => { element_line.pop(); Some(&periodic_table::elements::RG) },
|
"RG" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::RG) },
|
||||||
"RH" => { element_line.pop(); Some(&periodic_table::elements::RH) },
|
"RH" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::RH) },
|
||||||
"RN" => { element_line.pop(); Some(&periodic_table::elements::RN) },
|
"RN" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::RN) },
|
||||||
"RU" => { element_line.pop(); Some(&periodic_table::elements::RU) },
|
"RU" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::RU) },
|
||||||
"SB" => { element_line.pop(); Some(&periodic_table::elements::SB) },
|
"SB" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::SB) },
|
||||||
"SC" => { element_line.pop(); Some(&periodic_table::elements::SC) },
|
"SC" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::SC) },
|
||||||
"SE" => { element_line.pop(); Some(&periodic_table::elements::SE) },
|
"SE" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::SE) },
|
||||||
"SG" => { element_line.pop(); Some(&periodic_table::elements::SG) },
|
"SG" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::SG) },
|
||||||
"SI" => { element_line.pop(); Some(&periodic_table::elements::SI) },
|
"SI" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::SI) },
|
||||||
"SM" => { element_line.pop(); Some(&periodic_table::elements::SM) },
|
"SM" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::SM) },
|
||||||
"SN" => { element_line.pop(); Some(&periodic_table::elements::SN) },
|
"SN" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::SN) },
|
||||||
"SR" => { element_line.pop(); Some(&periodic_table::elements::SR) },
|
"SR" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::SR) },
|
||||||
"TA" => { element_line.pop(); Some(&periodic_table::elements::TA) },
|
"TA" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::TA) },
|
||||||
"TB" => { element_line.pop(); Some(&periodic_table::elements::TB) },
|
"TB" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::TB) },
|
||||||
"TC" => { element_line.pop(); Some(&periodic_table::elements::TC) },
|
"TC" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::TC) },
|
||||||
"TE" => { element_line.pop(); Some(&periodic_table::elements::TE) },
|
"TE" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::TE) },
|
||||||
"TH" => { element_line.pop(); Some(&periodic_table::elements::TH) },
|
"TH" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::TH) },
|
||||||
"TI" => { element_line.pop(); Some(&periodic_table::elements::TI) },
|
"TI" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::TI) },
|
||||||
"TL" => { element_line.pop(); Some(&periodic_table::elements::TL) },
|
"TL" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::TL) },
|
||||||
"TM" => { element_line.pop(); Some(&periodic_table::elements::TM) },
|
"TM" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::TM) },
|
||||||
"TS" => { element_line.pop(); Some(&periodic_table::elements::TS) },
|
"TS" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::TS) },
|
||||||
"XE" => { element_line.pop(); Some(&periodic_table::elements::XE) },
|
"XE" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::XE) },
|
||||||
"YB" => { element_line.pop(); Some(&periodic_table::elements::YB) },
|
"YB" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::YB) },
|
||||||
"ZN" => { element_line.pop(); Some(&periodic_table::elements::ZN) },
|
"ZN" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::ZN) },
|
||||||
"ZR" => { element_line.pop(); Some(&periodic_table::elements::ZR) },
|
"ZR" => { if temp { element_line.pop(); } char_before = None; Some(&periodic_table::elements::ZR) },
|
||||||
_ => {
|
_ => {
|
||||||
|
// println!("char is: {char}");
|
||||||
match char.to_uppercase().next().unwrap() {
|
match char.to_uppercase().next().unwrap() {
|
||||||
'B' => Some(&periodic_table::elements::B),
|
'B' => { char_before = Some(char); Some(&periodic_table::elements::B) },
|
||||||
'C' => Some(&periodic_table::elements::C),
|
'C' => { char_before = Some(char); Some(&periodic_table::elements::C) },
|
||||||
'F' => Some(&periodic_table::elements::F),
|
'F' => { char_before = Some(char); Some(&periodic_table::elements::F) },
|
||||||
'H' => Some(&periodic_table::elements::H),
|
'H' => { char_before = Some(char); Some(&periodic_table::elements::H) },
|
||||||
'I' => Some(&periodic_table::elements::I),
|
'I' => { char_before = Some(char); Some(&periodic_table::elements::I) },
|
||||||
'K' => Some(&periodic_table::elements::K),
|
'K' => { char_before = Some(char); Some(&periodic_table::elements::K) },
|
||||||
'N' => Some(&periodic_table::elements::N),
|
'N' => { char_before = Some(char); Some(&periodic_table::elements::N) },
|
||||||
'O' => Some(&periodic_table::elements::O),
|
'O' => { char_before = Some(char); Some(&periodic_table::elements::O) },
|
||||||
'P' => Some(&periodic_table::elements::P),
|
'P' => { char_before = Some(char); Some(&periodic_table::elements::P) },
|
||||||
'S' => Some(&periodic_table::elements::S),
|
'S' => { char_before = Some(char); Some(&periodic_table::elements::S) },
|
||||||
'U' => Some(&periodic_table::elements::U),
|
'U' => { char_before = Some(char); Some(&periodic_table::elements::U) },
|
||||||
'V' => Some(&periodic_table::elements::V),
|
'V' => { char_before = Some(char); Some(&periodic_table::elements::V) },
|
||||||
'W' => Some(&periodic_table::elements::W),
|
'W' => { char_before = Some(char); Some(&periodic_table::elements::W) },
|
||||||
'Y' => Some(&periodic_table::elements::Y),
|
'Y' => { char_before = Some(char); Some(&periodic_table::elements::Y) },
|
||||||
_ => None
|
_ => { char_before = Some(char); temp = false; None }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
char_before = None;
|
|
||||||
} else {
|
} else {
|
||||||
println!("char_before is none");
|
// println!("char_before is none");
|
||||||
element = match char.to_uppercase().next().unwrap() {
|
element = match char.to_uppercase().next().unwrap() {
|
||||||
'B' => Some(&periodic_table::elements::B),
|
'B' => Some(&periodic_table::elements::B),
|
||||||
'C' => Some(&periodic_table::elements::C),
|
'C' => Some(&periodic_table::elements::C),
|
||||||
@ -172,17 +175,24 @@ fn main() {
|
|||||||
'Y' => Some(&periodic_table::elements::Y),
|
'Y' => Some(&periodic_table::elements::Y),
|
||||||
_ => None
|
_ => None
|
||||||
};
|
};
|
||||||
// if element.is_none() {
|
char_before = Some(char);
|
||||||
char_before = Some(char);
|
temp = true
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
} else if char.is_ascii_digit() {
|
} else if char.is_ascii_digit() {
|
||||||
println!("matched ascii digit");
|
// println!("matched ascii digit");
|
||||||
todo!();
|
// println!("{char_before:?}");
|
||||||
|
if char_before.is_none() {
|
||||||
|
if char != '1' {
|
||||||
|
if let Some(last) = element_line.last_mut() {
|
||||||
|
last.nr = char.to_digit(10).unwrap();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
char_before = None
|
||||||
|
}
|
||||||
|
if element.is_some() && char.is_ascii_alphabetic() {
|
||||||
|
element_line.push( ElementNr { element: element.unwrap(), nr: 1 });
|
||||||
}
|
}
|
||||||
}
|
|
||||||
if element.is_some() {
|
|
||||||
element_line.push(element.unwrap());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
println!("{:#?}", element_line);
|
println!("{:#?}", element_line);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user