use crate::Element;
#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, thiserror::Error)]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[cfg_attr(feature = "mem_size", derive(mem_dbg::MemSize))]
#[cfg_attr(feature = "mem_dbg", derive(mem_dbg::MemDbg))]
#[cfg_attr(feature = "mem_size", mem_size(flat))]
pub enum Error {
#[error("Unknown element symbol: {0:?}")]
Element([char; 2]),
#[error("Unknown atomic number: {0}")]
AtomicNumber(u8),
#[error("Unknown character isotope: {0}")]
CharacterIsotope(char),
#[error("Unknown isotope for element {0:?} with atomic mass {1}")]
Isotope(Element, u64),
}