Skip to main content

Molecule

Struct Molecule 

Source
pub struct Molecule { /* private fields */ }
Expand description

A named molecular entity with formula and optional structural primitives.

Implementations§

Source§

impl Molecule

Source

pub fn new( name: &str, formula: ChemicalFormula, ) -> Result<Self, MoleculeValidationError>

Creates a molecule from a name and formula.

§Errors

Returns MoleculeValidationError::EmptyName when name is empty after trimming.

Source

pub fn builder(name: &str) -> MoleculeBuilder

Starts a molecule builder.

Source

pub const fn name(&self) -> &MoleculeName

Returns the molecule name.

Source

pub fn formula(&self) -> &ChemicalFormula

Returns the molecule formula.

Source

pub const fn molecular_formula(&self) -> &MolecularFormula

Returns the molecule formula wrapper.

Source

pub fn atoms(&self) -> &[MolecularAtom]

Returns explicit atoms in insertion order.

Source

pub fn atom_count(&self) -> usize

Returns the number of explicit atoms.

Source

pub fn atom_count_value(&self) -> AtomCount

Returns the explicit atom count wrapper.

Source

pub fn connections(&self) -> &[AtomConnection]

Returns explicit atom connections in insertion order.

Source

pub const fn charge(&self) -> MoleculeCharge

Returns the formal molecule charge.

Source

pub fn kinds(&self) -> &[MoleculeKind]

Returns molecule kind labels in insertion order.

Source

pub fn with_kind(self, kind: MoleculeKind) -> Self

Adds a kind label if it is not already present.

Source

pub const fn with_charge(self, charge: MoleculeCharge) -> Self

Sets the formal molecule charge.

Source

pub fn with_atom(self, atom: MolecularAtom) -> Self

Adds an explicit atom.

Source

pub fn try_with_connection( self, connection: AtomConnection, ) -> Result<Self, MoleculeValidationError>

Adds an atom connection after validating its indices against the explicit atom list.

§Errors

Returns MoleculeValidationError::InvalidConnectionIndex when the connection references an atom index outside the explicit atom list.

Trait Implementations§

Source§

impl Clone for Molecule

Source§

fn clone(&self) -> Molecule

Returns a duplicate of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for Molecule

Source§

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

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

impl Display for Molecule

Source§

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

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

impl PartialEq for Molecule

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · 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 Eq for Molecule

Source§

impl StructuralPartialEq for Molecule

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> 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> 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> 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.