Skip to content

Commit

Permalink
Remove private external types from public API
Browse files Browse the repository at this point in the history
  • Loading branch information
uklotzde committed Jan 17, 2024
1 parent c24de32 commit 9a7dca5
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 6 deletions.
28 changes: 23 additions & 5 deletions src/filter.rs
Original file line number Diff line number Diff line change
Expand Up @@ -216,6 +216,21 @@ impl FilteredWaveformBinAccumulator {
}
}

#[derive(Debug, Clone, Copy, PartialEq)]
pub struct WaveformFilterConfig {
sample_rate_hz: f32,
samples_per_bin: u32,
}

impl Default for WaveformFilterConfig {
fn default() -> Self {
Self {
sample_rate_hz: DEFAULT_SAMPLE_RATE_HZ,
samples_per_bin: 0,
}
}
}

#[derive(Debug)]
pub struct WaveformFilter {
samples_per_bin: u32,
Expand All @@ -225,16 +240,19 @@ pub struct WaveformFilter {

impl Default for WaveformFilter {
fn default() -> Self {
Self::new(
Hertz::<f32>::from_hz(DEFAULT_SAMPLE_RATE_HZ).expect("valid default sample rate"),
0,
)
Self::new(Default::default())
}
}

impl WaveformFilter {
#[must_use]
pub fn new(sample_rate: Hertz<f32>, samples_per_bin: u32) -> Self {
#[allow(clippy::missing_panics_doc)]
pub fn new(config: WaveformFilterConfig) -> Self {
let WaveformFilterConfig {
sample_rate_hz,
samples_per_bin,
} = config;
let sample_rate = Hertz::<f32>::from_hz(sample_rate_hz).expect("valid sample rate");
Self {
samples_per_bin,
filter_bank: FilterBank::new(sample_rate),
Expand Down
2 changes: 1 addition & 1 deletion src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
#![doc = include_str!("../README.md")]

mod filter;
pub use filter::WaveformFilter;
pub use filter::{WaveformFilter, WaveformFilterConfig};

mod waveform;
pub use waveform::{FilteredWaveform, FilteredWaveformBin, WaveformBin, WaveformVal};

0 comments on commit 9a7dca5

Please sign in to comment.