Skip to main content

Element

Enum Element 

Source
#[repr(u8)]
pub enum Element {
Show 119 variants H = 1, He = 2, Li = 3, Be = 4, B = 5, C = 6, N = 7, O = 8, F = 9, Ne = 10, Na = 11, Mg = 12, Al = 13, Si = 14, P = 15, S = 16, Cl = 17, Ar = 18, K = 19, Ca = 20, Sc = 21, Ti = 22, V = 23, Cr = 24, Mn = 25, Fe = 26, Co = 27, Ni = 28, Cu = 29, Zn = 30, Ga = 31, Ge = 32, As = 33, Se = 34, Br = 35, Kr = 36, Rb = 37, Sr = 38, Y = 39, Zr = 40, Nb = 41, Mo = 42, Tc = 43, Ru = 44, Rh = 45, Pd = 46, Ag = 47, Cd = 48, In = 49, Sn = 50, Sb = 51, Te = 52, I = 53, Xe = 54, Cs = 55, Ba = 56, La = 57, Ce = 58, Pr = 59, Nd = 60, Pm = 61, Sm = 62, Eu = 63, Gd = 64, Tb = 65, Dy = 66, Ho = 67, Er = 68, Tm = 69, Yb = 70, Lu = 71, Hf = 72, Ta = 73, W = 74, Re = 75, Os = 76, Ir = 77, Pt = 78, Au = 79, Hg = 80, Tl = 81, Pb = 82, Bi = 83, Po = 84, At = 85, Rn = 86, Fr = 87, Ra = 88, Ac = 89, Th = 90, Pa = 91, U = 92, Np = 93, Pu = 94, Am = 95, Cm = 96, Bk = 97, Cf = 98, Es = 99, Fm = 100, Md = 101, No = 102, Lr = 103, Rf = 104, Db = 105, Sg = 106, Bh = 107, Hs = 108, Mt = 109, Ds = 110, Rg = 111, Cn = 112, Nh = 113, Fl = 114, Mc = 115, Lv = 116, Ts = 117, Og = 118, Unknown = 0,
}
Expand description

Periodic table entries supported by bio-forge.

Each variant encodes its atomic number in the repr(u8) discriminant and provides conveniences for retrieving standard symbols, heavy-atom classification, and atomic masses used when exporting coordinates or computing physical properties.

Variants§

§

H = 1

Hydrogen (Z = 1).

§

He = 2

Helium (Z = 2).

§

Li = 3

Lithium (Z = 3).

§

Be = 4

Beryllium (Z = 4).

§

B = 5

Boron (Z = 5).

§

C = 6

Carbon (Z = 6).

§

N = 7

Nitrogen (Z = 7).

§

O = 8

Oxygen (Z = 8).

§

F = 9

Fluorine (Z = 9).

§

Ne = 10

Neon (Z = 10).

§

Na = 11

Sodium (Z = 11).

§

Mg = 12

Magnesium (Z = 12).

§

Al = 13

Aluminum (Z = 13).

§

Si = 14

Silicon (Z = 14).

§

P = 15

Phosphorus (Z = 15).

§

S = 16

Sulfur (Z = 16).

§

Cl = 17

Chlorine (Z = 17).

§

Ar = 18

Argon (Z = 18).

§

K = 19

Potassium (Z = 19).

§

Ca = 20

Calcium (Z = 20).

§

Sc = 21

Scandium (Z = 21).

§

Ti = 22

Titanium (Z = 22).

§

V = 23

Vanadium (Z = 23).

§

Cr = 24

Chromium (Z = 24).

§

Mn = 25

Manganese (Z = 25).

§

Fe = 26

Iron (Z = 26).

§

Co = 27

Cobalt (Z = 27).

§

Ni = 28

Nickel (Z = 28).

§

Cu = 29

Copper (Z = 29).

§

Zn = 30

Zinc (Z = 30).

§

Ga = 31

Gallium (Z = 31).

§

Ge = 32

Germanium (Z = 32).

§

As = 33

Arsenic (Z = 33).

§

Se = 34

Selenium (Z = 34).

§

Br = 35

Bromine (Z = 35).

§

Kr = 36

Krypton (Z = 36).

§

Rb = 37

Rubidium (Z = 37).

§

Sr = 38

Strontium (Z = 38).

§

Y = 39

Yttrium (Z = 39).

§

Zr = 40

Zirconium (Z = 40).

§

Nb = 41

Niobium (Z = 41).

§

Mo = 42

Molybdenum (Z = 42).

§

Tc = 43

Technetium (Z = 43).

§

Ru = 44

Ruthenium (Z = 44).

§

Rh = 45

Rhodium (Z = 45).

§

Pd = 46

Palladium (Z = 46).

§

Ag = 47

Silver (Z = 47).

§

Cd = 48

Cadmium (Z = 48).

§

In = 49

Indium (Z = 49).

§

Sn = 50

Tin (Z = 50).

§

Sb = 51

Antimony (Z = 51).

§

Te = 52

Tellurium (Z = 52).

§

I = 53

Iodine (Z = 53).

§

Xe = 54

Xenon (Z = 54).

§

Cs = 55

Cesium (Z = 55).

§

Ba = 56

Barium (Z = 56).

§

La = 57

Lanthanum (Z = 57).

§

Ce = 58

Cerium (Z = 58).

§

Pr = 59

Praseodymium (Z = 59).

§

Nd = 60

Neodymium (Z = 60).

§

Pm = 61

Promethium (Z = 61).

§

Sm = 62

Samarium (Z = 62).

§

Eu = 63

Europium (Z = 63).

§

Gd = 64

Gadolinium (Z = 64).

§

Tb = 65

Terbium (Z = 65).

§

Dy = 66

Dysprosium (Z = 66).

§

Ho = 67

Holmium (Z = 67).

§

Er = 68

Erbium (Z = 68).

§

Tm = 69

Thulium (Z = 69).

§

Yb = 70

Ytterbium (Z = 70).

§

Lu = 71

Lutetium (Z = 71).

§

Hf = 72

Hafnium (Z = 72).

§

Ta = 73

Tantalum (Z = 73).

§

W = 74

Tungsten (Z = 74).

§

Re = 75

Rhenium (Z = 75).

§

Os = 76

Osmium (Z = 76).

§

Ir = 77

Iridium (Z = 77).

§

Pt = 78

Platinum (Z = 78).

§

Au = 79

Gold (Z = 79).

§

Hg = 80

Mercury (Z = 80).

§

Tl = 81

Thallium (Z = 81).

§

Pb = 82

Lead (Z = 82).

§

Bi = 83

Bismuth (Z = 83).

§

Po = 84

Polonium (Z = 84).

§

At = 85

Astatine (Z = 85).

§

Rn = 86

Radon (Z = 86).

§

Fr = 87

Francium (Z = 87).

§

Ra = 88

Radium (Z = 88).

§

Ac = 89

Actinium (Z = 89).

§

Th = 90

Thorium (Z = 90).

§

Pa = 91

Protactinium (Z = 91).

§

U = 92

Uranium (Z = 92).

§

Np = 93

Neptunium (Z = 93).

§

Pu = 94

Plutonium (Z = 94).

§

Am = 95

Americium (Z = 95).

§

Cm = 96

Curium (Z = 96).

§

Bk = 97

Berkelium (Z = 97).

§

Cf = 98

Californium (Z = 98).

§

Es = 99

Einsteinium (Z = 99).

§

Fm = 100

Fermium (Z = 100).

§

Md = 101

Mendelevium (Z = 101).

§

No = 102

Nobelium (Z = 102).

§

Lr = 103

Lawrencium (Z = 103).

§

Rf = 104

Rutherfordium (Z = 104).

§

Db = 105

Dubnium (Z = 105).

§

Sg = 106

Seaborgium (Z = 106).

§

Bh = 107

Bohrium (Z = 107).

§

Hs = 108

Hassium (Z = 108).

§

Mt = 109

Meitnerium (Z = 109).

§

Ds = 110

Darmstadtium (Z = 110).

§

Rg = 111

Roentgenium (Z = 111).

§

Cn = 112

Copernicium (Z = 112).

§

Nh = 113

Nihonium (Z = 113).

§

Fl = 114

Flerovium (Z = 114).

§

Mc = 115

Moscovium (Z = 115).

§

Lv = 116

Livermorium (Z = 116).

§

Ts = 117

Tennessine (Z = 117).

§

Og = 118

Oganesson (Z = 118).

§

Unknown = 0

Placeholder for unsupported or user-defined elements.

Implementations§

Source§

impl Element

Source

pub fn symbol(&self) -> &'static str

Retrieves the IUPAC element symbol.

This is used across file writers to ensure the element column stays normalized regardless of how the atom was originally labeled.

§Returns

A static string slice containing the two-character symbol (or "Unknown").

Source

pub fn is_heavy_atom(&self) -> bool

Indicates whether the element is treated as a heavy atom.

Hydrogen is the only light atom; every other element (including Unknown) is flagged as heavy for the purpose of filtering coordinate exports.

§Returns

true if the element is not hydrogen.

Source

pub fn atomic_mass(&self) -> f64

Returns the standard atomic mass in unified atomic mass units.

Values follow IUPAC tables and feed mass-based calculations such as center-of-mass or density estimations in solvation operations.

§Returns

The atomic mass expressed as f64; 0.0 for Unknown.

Trait Implementations§

Source§

impl Clone for Element

Source§

fn clone(&self) -> Element

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for Element

Source§

impl Debug for Element

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for Element

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Display for Element

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Eq for Element

Source§

impl FromStr for Element

Source§

type Err = String

The associated error which can be returned from parsing.
Source§

fn from_str(s: &str) -> Result<Self, Self::Err>

Parses a string s to return a value of this type. Read more
Source§

impl Hash for Element

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for Element

Source§

fn eq(&self, other: &Element) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl StructuralPartialEq for Element

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> Scalar for T
where T: 'static + Clone + PartialEq + Debug,

Source§

impl<SS, SP> SupersetOf<SS> for SP
where SS: SubsetOf<SP>,

Source§

fn to_subset(&self) -> Option<SS>

The inverse inclusion map: attempts to construct self from the equivalent element of its superset. Read more
Source§

fn is_in_subset(&self) -> bool

Checks if self is actually part of its subset T (and can be converted to it).
Source§

fn to_subset_unchecked(&self) -> SS

Use with care! Same as self.to_subset but without any property checks. Always succeeds.
Source§

fn from_subset(element: &SS) -> SP

The inclusion map: converts self to the equivalent element of its superset.
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToSmolStr for T
where T: Display + ?Sized,

Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V