use crate::converter::Converter;
use crate::error::Result;
use crate::properties::*;
pub trait FluidApi {
fn get(&self, output: &str, key1: &str, val1: f64, key2: &str, val2: f64) -> Result<f64>;
fn props_tp(&self, t: f64, p: f64) -> Result<ThermoProp>;
fn props_ph(&self, p: f64, h: f64) -> Result<ThermoProp>;
fn props_ps(&self, p: f64, s: f64) -> Result<ThermoProp>;
fn props_td(&self, t: f64, d: f64) -> Result<ThermoProp>;
fn props_th(&self, t: f64, h: f64) -> Result<ThermoProp>;
fn props_ts(&self, t: f64, s: f64) -> Result<ThermoProp>;
fn props_pd(&self, p: f64, d: f64) -> Result<ThermoProp>;
fn props_dh(&self, d: f64, h: f64) -> Result<ThermoProp>;
fn props_ds(&self, d: f64, s: f64) -> Result<ThermoProp>;
fn props_hs(&self, h: f64, s: f64) -> Result<ThermoProp>;
fn props_tq(&self, t: f64, q: f64) -> Result<ThermoProp>;
fn props_pq(&self, p: f64, q: f64) -> Result<ThermoProp>;
fn saturation_p(&self, p: f64) -> Result<SaturationProps>;
fn saturation_t(&self, t: f64) -> Result<SaturationProps>;
fn transport(&self, t: f64, d: f64) -> Result<TransportProps>;
fn critical_point(&self) -> Result<CriticalProps>;
fn info(&self) -> Result<FluidInfo>;
fn converter(&self) -> &Converter;
}