//! # Entropyk Core
//!
//! Core types and primitives for the Entropyk thermodynamic simulation library.
//!
//! This crate provides the foundation types used throughout the Entropyk ecosystem,
//! including type-safe physical quantities via the NewType pattern.
//!
//! ## Physical Types
//!
//! All physical quantities use the NewType pattern to provide compile-time unit safety:
//!
//! - [`Pressure`] - Pressure in Pascals (Pa)
//! - [`Temperature`] - Temperature in Kelvin (K)
//! - [`Enthalpy`] - Specific enthalpy in Joules per kilogram (J/kg)
//! - [`MassFlow`] - Mass flow rate in kilograms per second (kg/s)
//!
//! ## Example
//!
//! ```rust
//! use entropyk_core::{Pressure, Temperature, Enthalpy, MassFlow};
//!
//! // Create values using constructors
//! let pressure = Pressure::from_bar(1.0);
//! let temperature = Temperature::from_celsius(25.0);
//!
//! // Convert to base units
//! assert_eq!(pressure.to_pascals(), 100_000.0);
//! assert_eq!(temperature.to_kelvin(), 298.15);
//!
//! // Arithmetic operations
//! let p1 = Pressure::from_pascals(100_000.0);
//! let p2 = Pressure::from_pascals(50_000.0);
//! let p3 = p1 + p2;
//! assert_eq!(p3.to_pascals(), 150_000.0);
//! ```

#![deny(warnings)]
#![warn(missing_docs)]

pub mod calib;
pub mod types;

// Re-export all physical types for convenience
pub use types::{
    Enthalpy, MassFlow, MIN_MASS_FLOW_REGULARIZATION_KG_S, Power, Pressure, Temperature,
    ThermalConductance,
};

// Re-export calibration types
pub use calib::{Calib, CalibIndices, CalibValidationError};
