pub struct AtomMut<'a> { /* private fields */ }
Expand description
An analog to a mutable reference to an atom (&mut Atom
)
Methods from Deref<Target = Atom>§
sourcepub fn mass(&self) -> f64
pub fn mass(&self) -> f64
Get the atom mass, in atomic mass units.
Example
let atom = Atom::new("He");
assert_eq!(atom.mass(), 4.002602);
sourcepub fn set_mass(&mut self, mass: f64)
pub fn set_mass(&mut self, mass: f64)
Set the atom mass to mass
, in atomic mass units.
Example
let mut atom = Atom::new("He");
atom.set_mass(34.9);
assert_eq!(atom.mass(), 34.9);
sourcepub fn charge(&self) -> f64
pub fn charge(&self) -> f64
Get the atom charge, in number of the electron charge e.
Example
let atom = Atom::new("He");
assert_eq!(atom.charge(), 0.0);
sourcepub fn set_charge(&mut self, charge: f64)
pub fn set_charge(&mut self, charge: f64)
Set the atom charge to charge
, in number of the electron charge e.
Example
let mut atom = Atom::new("He");
atom.set_charge(-2.0);
assert_eq!(atom.charge(), -2.0);
sourcepub fn atomic_type(&self) -> String
pub fn atomic_type(&self) -> String
sourcepub fn set_name<'a>(&mut self, name: impl Into<&'a str>)
pub fn set_name<'a>(&mut self, name: impl Into<&'a str>)
Set the atom name to name
.
Example
let mut atom = Atom::new("He");
atom.set_name("Zn3");
assert_eq!(atom.name(), "Zn3");
sourcepub fn set_atomic_type<'a>(&mut self, atomic_type: impl Into<&'a str>)
pub fn set_atomic_type<'a>(&mut self, atomic_type: impl Into<&'a str>)
Set the atom type to atomic_type
.
Example
let mut atom = Atom::new("He");
atom.set_atomic_type("F");
assert_eq!(atom.atomic_type(), "F");
sourcepub fn full_name(&self) -> String
pub fn full_name(&self) -> String
Try to get the full name of the atom from the atomic type. For example, the full name of “He” is “Helium”, and so on. If the name can not be found, this function returns the empty string.
Example
let atom = Atom::new("Zn");
assert_eq!(atom.full_name(), "Zinc");
sourcepub fn vdw_radius(&self) -> f64
pub fn vdw_radius(&self) -> f64
Try to get the Van der Waals radius of the atom from the atomic type. If the radius can not be found, returns 0.
Example
assert_eq!(Atom::new("He").vdw_radius(), 1.4);
assert_eq!(Atom::new("Xxx").vdw_radius(), 0.0);
sourcepub fn covalent_radius(&self) -> f64
pub fn covalent_radius(&self) -> f64
Try to get the covalent radius of the atom from the atomic type. If the radius can not be found, returns 0.
Example
assert_eq!(Atom::new("He").covalent_radius(), 0.32);
assert_eq!(Atom::new("Xxx").covalent_radius(), 0.0);
sourcepub fn atomic_number(&self) -> u64
pub fn atomic_number(&self) -> u64
Try to get the atomic number of the atom from the atomic type. If the number can not be found, returns 0.
Example
assert_eq!(Atom::new("He").atomic_number(), 2);
assert_eq!(Atom::new("Xxx").atomic_number(), 0);
sourcepub fn set(&mut self, name: &str, property: impl Into<Property>)
pub fn set(&mut self, name: &str, property: impl Into<Property>)
Add a new property
with the given name
to this atom.
If a property with the same name already exists, this function override the existing property with the new one.
Examples
let mut atom = Atom::new("He");
atom.set("a bool", true);
atom.set("a string", "test");
assert_eq!(atom.get("a bool"), Some(Property::Bool(true)));
assert_eq!(atom.get("a string"), Some(Property::String("test".into())));
sourcepub fn get(&self, name: &str) -> Option<Property>
pub fn get(&self, name: &str) -> Option<Property>
Get a property with the given name
in this atom, if it exist.
Examples
let mut atom = Atom::new("He");
atom.set("foo", Property::Double(22.2));
assert_eq!(atom.get("foo"), Some(Property::Double(22.2)));
assert_eq!(atom.get("Bar"), None);
sourcepub fn properties(&self) -> PropertiesIter<'_> ⓘ
pub fn properties(&self) -> PropertiesIter<'_> ⓘ
Get an iterator over all (name, property) pairs for this atom
Examples
let mut atom = Atom::new("He");
atom.set("foo", Property::Double(22.2));
atom.set("bar", Property::Bool(false));
for (name, property) in atom.properties() {
if name == "foo" {
assert_eq!(property, Property::Double(22.2));
} else if name == "bar" {
assert_eq!(property, Property::Bool(false));
}
}