1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
//! Dive planning library //! # Quick example //! A quick example showing how to use this library: //! ``` //! use capra::modes::open_circuit::OpenCircuitParams; //! use capra_core::{common, deco}; //! use time::Duration; //! use capra::modes::OpenCircuit; //! use capra::DivePlan; //! use capra_core::deco::zhl16::tissue_constants::TissueConstants; //! use capra_core::deco::zhl16::variant::Variant::B; //! let air = common::Gas::new(21, 0, 79).unwrap(); //! //! // Make a new ZHL16 decompression model //! let zhl16 = deco::zhl16::ZHL16::new( //! deco::Tissue::default(), //! TissueConstants::new_by_variant(B), //! 50, //! 70, //! ); //! //! // Make a dive segment //! let dive_segment = common::DiveSegment::new( //! common::SegmentType::DiveSegment, //! 45, //! 45, //! Duration::minutes(60), //! -10, //! 20, //! ) //! .unwrap(); //! //! let deco_gases = vec![(air, None)]; //! let segments = vec![(dive_segment, air)]; //! let parameters = OpenCircuitParams { //! ascent_rate: -10, //! descent_rate: 20, //! metres_per_bar: 10000.0 / common::DENSITY_SALTWATER, //! sac_bottom: 20, //! sac_deco: 15 //! }; //! let open_circuit = OpenCircuit::new( //! zhl16, //! &deco_gases, //! &segments, //! parameters //! ); //! //! let results = open_circuit.plan(); //! //! for (segment, gas) in results.total_segments() { //! println!("{:?}, {:?}", segment, gas); //! } //! //! for (gas, qty) in results.gas_used() { //! println!("{:?}: {}", gas, qty); //! } //! ``` pub mod modes; pub mod parameters; pub mod plan; pub mod result; pub use plan::DivePlan; pub use result::DiveResult; /// A default, placeholder minimum ppO2. pub const PPO2_MINIMUM: f64 = 0.18; /// A default, placeholder maximum ppO2 for use during bottom segments. pub const PPO2_MAXIMUM_DIVE: f64 = 1.4; /// A default, placeholder maximum ppO2 for use during decompression stops. pub const PPO2_MAXIMUM_DECO: f64 = 1.6;