Struct chemfiles::AtomRef

source ·
pub struct AtomRef<'a> { /* private fields */ }
Expand description

An analog to a reference to an atom (&Atom)

Methods from Deref<Target = Atom>§

source

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

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

pub fn name(&self) -> String

Get the atom name.

Example
let atom = Atom::new("He");
assert_eq!(atom.name(), "He");
source

pub fn atomic_type(&self) -> String

Get the atom type.

Example
let atom = Atom::new("He");
assert_eq!(atom.atomic_type(), "He");
source

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

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

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

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

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

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

Trait Implementations§

source§

impl<'a> Debug for AtomRef<'a>

source§

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

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

impl<'a> Deref for AtomRef<'a>

§

type Target = Atom

The resulting type after dereferencing.
source§

fn deref(&self) -> &Atom

Dereferences the value.

Auto Trait Implementations§

§

impl<'a> RefUnwindSafe for AtomRef<'a>

§

impl<'a> !Send for AtomRef<'a>

§

impl<'a> !Sync for AtomRef<'a>

§

impl<'a> Unpin for AtomRef<'a>

§

impl<'a> UnwindSafe for AtomRef<'a>

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

const: unstable · source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

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

const: unstable · 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, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

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

Performs the conversion.
source§

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

§

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

The type returned in the event of a conversion error.
const: unstable · source§

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

Performs the conversion.