libbladerf-rs 0.3.0

Fully Rust native BladeRF driver
use crate::bladerf1::BladeRf1;
use crate::bladerf1::hardware::si5338;
use crate::channel::Channel;
use crate::error::Result;
use crate::range::{Range, RangeItem};
impl BladeRf1 {
    pub fn set_sample_rate(&mut self, channel: Channel, rate: u32) -> Result<u32> {
        si5338::set_sample_rate(&mut self.nios, channel, rate)
    }
    pub fn get_sample_rate(&mut self, channel: Channel) -> Result<u32> {
        si5338::get_sample_rate(&mut self.nios, channel)
    }
    pub fn get_sample_rate_range() -> Range {
        Range {
            items: vec![RangeItem::Step(
                si5338::BLADERF_SAMPLERATE_MIN as f64,
                si5338::BLADERF_SAMPLERATE_REC_MAX as f64,
                1f64,
                1f64,
            )],
        }
    }
    pub fn set_rational_sample_rate(
        &mut self,
        channel: Channel,
        rate: &mut si5338::RationalRate,
    ) -> Result<si5338::RationalRate> {
        si5338::set_rational_sample_rate(&mut self.nios, channel, rate)
    }
    pub fn get_rational_sample_rate(&mut self, channel: Channel) -> Result<si5338::RationalRate> {
        si5338::get_rational_sample_rate(&mut self.nios, channel)
    }
}