Skip to main content

Compound

Struct Compound 

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

A named chemical compound with formula and lightweight descriptors.

Implementations§

Source§

impl Compound

Source

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

Creates a compound from a name and formula.

§Errors

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

Source

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

Returns the primary compound name.

Source

pub fn formula(&self) -> &ChemicalFormula

Returns the primary formula.

Source

pub const fn compound_formula(&self) -> &CompoundFormula

Returns the compound formula wrapper.

Source

pub const fn common_name(&self) -> Option<&CommonName>

Returns the optional common name.

Source

pub const fn systematic_name(&self) -> Option<&SystematicName>

Returns the optional systematic name.

Source

pub const fn empirical_formula(&self) -> Option<&EmpiricalFormula>

Returns the optional empirical formula.

Source

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

Returns the optional molecular formula.

Source

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

Returns compound kind labels in insertion order.

Source

pub fn identifiers(&self) -> &[CompoundIdentifier]

Returns compound identifiers in insertion order.

Source

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

Adds a kind label if it is not already present.

Source

pub fn with_common_name(self, common_name: CommonName) -> Self

Sets the common name from a validated value.

Source

pub fn try_with_common_name( self, common_name: &str, ) -> Result<Self, CompoundValidationError>

Sets the common name after validation.

§Errors

Returns CompoundValidationError::EmptyCommonName when common_name is empty after trimming.

Source

pub fn with_systematic_name(self, systematic_name: SystematicName) -> Self

Sets the systematic name from a validated value.

Source

pub fn try_with_systematic_name( self, systematic_name: &str, ) -> Result<Self, CompoundValidationError>

Sets the systematic name after validation.

§Errors

Returns CompoundValidationError::EmptySystematicName when systematic_name is empty after trimming.

Source

pub fn with_empirical_formula(self, formula: EmpiricalFormula) -> Self

Sets the empirical formula.

Source

pub fn with_molecular_formula(self, formula: MolecularFormula) -> Self

Sets the molecular formula.

Source

pub fn try_with_identifier( self, identifier: CompoundIdentifier, ) -> Result<Self, CompoundValidationError>

Adds an identifier if it is not already present.

§Errors

This method currently cannot fail because CompoundIdentifier values are validated at construction, but it returns Result so builder chains can stay consistently fallible.

Trait Implementations§

Source§

impl Clone for Compound

Source§

fn clone(&self) -> Compound

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 Compound

Source§

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

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

impl Display for Compound

Source§

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

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

impl PartialEq for Compound

Source§

fn eq(&self, other: &Compound) -> 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 Compound

Source§

impl StructuralPartialEq for Compound

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.