Skip to main content

OxidationStates

Trait OxidationStates 

Source
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§

Source

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§

Source

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));

Implementors§