use uom::si::f64::{Pressure, SpecificHeatCapacity};
use crate::{
PropertyError, State,
units::{SpecificEnthalpy, SpecificEntropy, SpecificInternalEnergy},
};
use super::ThermoModel;
pub trait HasPressure: ThermoModel {
fn pressure(&self, state: &State<Self::Fluid>) -> Result<Pressure, PropertyError>;
}
pub trait HasInternalEnergy: ThermoModel {
fn internal_energy(
&self,
state: &State<Self::Fluid>,
) -> Result<SpecificInternalEnergy, PropertyError>;
}
pub trait HasEnthalpy: ThermoModel {
fn enthalpy(&self, state: &State<Self::Fluid>) -> Result<SpecificEnthalpy, PropertyError>;
}
pub trait HasEntropy: ThermoModel {
fn entropy(&self, state: &State<Self::Fluid>) -> Result<SpecificEntropy, PropertyError>;
}
pub trait HasCp: ThermoModel {
fn cp(&self, state: &State<Self::Fluid>) -> Result<SpecificHeatCapacity, PropertyError>;
}
pub trait HasCv: ThermoModel {
fn cv(&self, state: &State<Self::Fluid>) -> Result<SpecificHeatCapacity, PropertyError>;
}