pub trait OxidationStates {
// Required method
fn oxidation_states(&self) -> &'static [i16];
// Provided method
fn is_valid_oxidation_state(&self, state: i16) -> bool { ... }
}Expand description
Valid oxidation states for chemical elements.
Required Methods§
Sourcefn oxidation_states(&self) -> &'static [i16]
fn oxidation_states(&self) -> &'static [i16]
Returns all valid oxidation states.
§Examples
use elements_rs::{
Element, OxidationStates,
isotopes::{HydrogenIsotope, Isotope},
};
let states = Element::H.oxidation_states();
assert!(states.contains(&1));
assert!(states.contains(&-1));
let deuterium = Isotope::H(HydrogenIsotope::D);
assert_eq!(deuterium.oxidation_states(), states);Provided Methods§
Sourcefn is_valid_oxidation_state(&self, state: i16) -> bool
fn is_valid_oxidation_state(&self, state: i16) -> bool
Returns whether the oxidation state is valid for this element.
§Examples
use elements_rs::{
Element, OxidationStates,
isotopes::{HydrogenIsotope, Isotope},
};
assert!(Element::O.is_valid_oxidation_state(-2));
assert!(!Element::O.is_valid_oxidation_state(3));
let deuterium = Isotope::H(HydrogenIsotope::D);
assert!(deuterium.is_valid_oxidation_state(1));
assert!(!deuterium.is_valid_oxidation_state(2));