rebound-rs 4.6.0-alpha.1

Rust wrapper for the REBOUND N-body simulation library.
Documentation
use rebound_bind as rb;

pub struct IntegratorBs<'a> {
    pub(crate) inner: *mut rb::reb_integrator_bs,
    pub(crate) _marker: core::marker::PhantomData<&'a mut rb::reb_simulation>,
}

impl<'a> IntegratorBs<'a> {
    pub fn set_eps_abs(self, eps_abs: f64) -> Self {
        unsafe {
            (*self.inner).eps_abs = eps_abs;
        }
        self
    }

    pub fn set_eps_rel(self, eps_rel: f64) -> Self {
        unsafe {
            (*self.inner).eps_rel = eps_rel;
        }
        self
    }

    pub fn set_min_dt(self, min_dt: f64) -> Self {
        unsafe {
            (*self.inner).min_dt = min_dt;
        }
        self
    }

    pub fn set_max_dt(self, max_dt: f64) -> Self {
        unsafe {
            (*self.inner).max_dt = max_dt;
        }
        self
    }

    pub fn eps_abs(&self) -> f64 {
        unsafe { (*self.inner).eps_abs }
    }

    pub fn eps_rel(&self) -> f64 {
        unsafe { (*self.inner).eps_rel }
    }

    pub fn min_dt(&self) -> f64 {
        unsafe { (*self.inner).min_dt }
    }

    pub fn max_dt(&self) -> f64 {
        unsafe { (*self.inner).max_dt }
    }
}