Trait DecoAlgorithm

Source
pub trait DecoAlgorithm: Copy {
    // Required methods
    fn add_dive_segment(
        &mut self,
        segment: &DiveSegment,
        gas: &Gas,
        metres_per_bar: f64,
    );
    fn surface(
        &mut self,
        ascent_rate: isize,
        descent_rate: isize,
        gas: &Gas,
        metres_per_bar: f64,
    ) -> Vec<DiveSegment>;
    fn get_tissue(&self) -> Tissue;

    // Provided method
    fn get_stops(
        &self,
        ascent_rate: isize,
        descent_rate: isize,
        gas: &Gas,
        metres_per_bar: f64,
    ) -> Vec<DiveSegment> { ... }
}
Expand description

Trait for decompression models. This trait must be implemented for any custom decompression algorithms if they are to be used in dive plans with the [DivePlan] trait.

Required Methods§

Source

fn add_dive_segment( &mut self, segment: &DiveSegment, gas: &Gas, metres_per_bar: f64, )

Apply a segment to the deco model.

§Arguments
  • segment - DiveSegment to apply.
  • gas - Gas that is being consumed in this segment.
  • metres_per_bar - Depth of water required to induce 1 bar of pressure.
Source

fn surface( &mut self, ascent_rate: isize, descent_rate: isize, gas: &Gas, metres_per_bar: f64, ) -> Vec<DiveSegment>

Surface the deco model, returning the mandatory decompression stops / remaining no-decompression time along the way.

§Arguments
  • ascent_rate - Ascent rate to use during stops
  • descent_rate - Ascent rate to use during stops
Source

fn get_tissue(&self) -> Tissue

Get the tissue loadings of the model

Provided Methods§

Source

fn get_stops( &self, ascent_rate: isize, descent_rate: isize, gas: &Gas, metres_per_bar: f64, ) -> Vec<DiveSegment>

Get the decompression stops required to surface the model. This is identical to surface but it does not modify the original model in any way.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§