Skip to content

Commit f8b55c3

Browse files
authored
Use rust enums as function parameters (#385)
1 parent b646816 commit f8b55c3

17 files changed

+132
-115
lines changed

rust-package/brainflow/build.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,7 @@ fn generate_constants_binding() {
111111

112112
let bindings = bindings.replace("const First", "const FIRST");
113113
let bindings = bindings.replace("const Last", "const LAST");
114+
let bindings = bindings.replace("#[derive(", "#[derive(FromPrimitive, ToPrimitive, ");
114115

115116
let binding_target_path = PathBuf::new().join("src").join("ffi").join("constants.rs");
116117
let mut file = File::create(&binding_target_path).unwrap();

rust-package/brainflow/examples/band_power.rs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,12 @@ use ndarray::s;
88

99
fn main() {
1010
brainflow::board_shim::enable_dev_board_logger().unwrap();
11-
let board_id = BoardIds::SyntheticBoard as i32;
11+
let board_id = BoardIds::SyntheticBoard;
1212
let eeg_channels = board_shim::get_eeg_channels(board_id).unwrap();
1313
let sampling_rate = board_shim::get_sampling_rate(board_id).unwrap();
1414
let nfft = data_filter::get_nearest_power_of_two(sampling_rate).unwrap();
1515

1616
let params = BrainFlowInputParamsBuilder::default().build();
17-
let board_id = BoardIds::SyntheticBoard as i32;
1817
let board = board_shim::BoardShim::new(board_id, params).unwrap();
1918

2019
board.prepare_session().unwrap();
@@ -28,7 +27,7 @@ fn main() {
2827
data.slice_mut(s![eeg_channels[1], ..])
2928
.as_slice_mut()
3029
.unwrap(),
31-
DetrendOperations::Linear as i32,
30+
DetrendOperations::Linear,
3231
)
3332
.unwrap();
3433
let mut psd = data_filter::get_psd_welch(
@@ -38,7 +37,7 @@ fn main() {
3837
nfft,
3938
nfft / 2,
4039
sampling_rate,
41-
WindowFunctions::BlackmanHarris as i32,
40+
WindowFunctions::BlackmanHarris,
4241
)
4342
.unwrap();
4443
let band_power_alpha = data_filter::get_band_power(&mut psd, 7.0, 13.0).unwrap();

rust-package/brainflow/examples/denoising.rs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,10 @@ use ndarray::s;
88

99
fn main() {
1010
brainflow::board_shim::enable_dev_board_logger().unwrap();
11-
let board_id = BoardIds::SyntheticBoard as i32;
11+
let board_id = BoardIds::SyntheticBoard;
1212
let eeg_channels = board_shim::get_eeg_channels(board_id).unwrap();
1313

1414
let params = BrainFlowInputParamsBuilder::default().build();
15-
let board_id = BoardIds::SyntheticBoard as i32;
1615
let board = board_shim::BoardShim::new(board_id, params).unwrap();
1716

1817
board.prepare_session().unwrap();
@@ -28,7 +27,7 @@ fn main() {
2827
.as_slice_mut()
2928
.unwrap(),
3029
3,
31-
AggOperations::Mean as i32,
30+
AggOperations::Mean,
3231
)
3332
.unwrap();
3433
println!("{:?}", data.slice(s![eeg_channels[0], ..]));

rust-package/brainflow/examples/downsampling.rs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,10 @@ use ndarray::s;
88

99
fn main() {
1010
brainflow::board_shim::enable_dev_board_logger().unwrap();
11-
let board_id = BoardIds::SyntheticBoard as i32;
11+
let board_id = BoardIds::SyntheticBoard;
1212
let eeg_channels = board_shim::get_eeg_channels(board_id).unwrap();
1313

1414
let params = BrainFlowInputParamsBuilder::default().build();
15-
let board_id = BoardIds::SyntheticBoard as i32;
1615
let board = board_shim::BoardShim::new(board_id, params).unwrap();
1716

1817
board.prepare_session().unwrap();
@@ -28,7 +27,7 @@ fn main() {
2827
.as_slice_mut()
2928
.unwrap(),
3029
3,
31-
AggOperations::Each as i32,
30+
AggOperations::Each,
3231
)
3332
.unwrap();
3433
println!("{:?}", &downsampled);

rust-package/brainflow/examples/eeg_metrics.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ use brainflow::{
99
fn main() {
1010
brainflow::board_shim::enable_dev_board_logger().unwrap();
1111
let params = BrainFlowInputParamsBuilder::default().build();
12-
let board_id = BoardIds::SyntheticBoard as i32;
12+
let board_id = BoardIds::SyntheticBoard;
1313
let board = board_shim::BoardShim::new(board_id, params).unwrap();
1414

1515
board.prepare_session().unwrap();

rust-package/brainflow/examples/get_data.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@ use brainflow::{board_shim, brainflow_input_params::BrainFlowInputParamsBuilder,
55
fn main() {
66
brainflow::board_shim::enable_dev_board_logger().unwrap();
77
let params = BrainFlowInputParamsBuilder::default().build();
8-
let board_id = BoardIds::SyntheticBoard as i32;
9-
let board = board_shim::BoardShim::new(board_id, params).unwrap();
8+
let board = board_shim::BoardShim::new(BoardIds::SyntheticBoard, params).unwrap();
109

1110
board.prepare_session().unwrap();
1211
board.start_stream(45000, "").unwrap();

rust-package/brainflow/examples/markers.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ use brainflow::BoardIds;
88
fn main() {
99
brainflow::board_shim::enable_dev_board_logger().unwrap();
1010
let params = BrainFlowInputParamsBuilder::default().build();
11-
let board = BoardShim::new(BoardIds::SyntheticBoard as i32, params).unwrap();
11+
let board = BoardShim::new(BoardIds::SyntheticBoard, params).unwrap();
1212

1313
board.prepare_session().unwrap();
1414
board.start_stream(45000, "file://data.csv:w").unwrap();

rust-package/brainflow/examples/read_write_file.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,7 @@ use brainflow::{
77
fn main() {
88
brainflow::board_shim::enable_dev_board_logger().unwrap();
99
let params = BrainFlowInputParamsBuilder::default().build();
10-
let board_id = BoardIds::SyntheticBoard as i32;
11-
let board = board_shim::BoardShim::new(board_id, params).unwrap();
10+
let board = board_shim::BoardShim::new(BoardIds::SyntheticBoard, params).unwrap();
1211

1312
board.prepare_session().unwrap();
1413
board.start_stream(45000, "").unwrap();

rust-package/brainflow/examples/signal_filtering.rs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,11 @@ use ndarray::s;
88

99
fn main() {
1010
brainflow::board_shim::enable_dev_board_logger().unwrap();
11-
let board_id = BoardIds::SyntheticBoard as i32;
11+
let board_id = BoardIds::SyntheticBoard;
1212
let sampling_rate = board_shim::get_sampling_rate(board_id).unwrap();
1313
let eeg_channels = board_shim::get_eeg_channels(board_id).unwrap();
1414

1515
let params = BrainFlowInputParamsBuilder::default().build();
16-
let board_id = BoardIds::SyntheticBoard as i32;
1716
let board = board_shim::BoardShim::new(board_id, params).unwrap();
1817

1918
board.prepare_session().unwrap();
@@ -33,7 +32,7 @@ fn main() {
3332
sampling_rate,
3433
13.0,
3534
3,
36-
FilterTypes::Bessel as i32,
35+
FilterTypes::Bessel,
3736
0.0,
3837
)
3938
.unwrap();

rust-package/brainflow/examples/transforms.rs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,11 @@ use ndarray::s;
99
fn main() {
1010
brainflow::board_shim::enable_dev_board_logger().unwrap();
1111

12-
let board_id = BoardIds::SyntheticBoard as i32;
12+
let board_id = BoardIds::SyntheticBoard;
1313
let eeg_channels = board_shim::get_eeg_channels(board_id).unwrap();
1414
println!("{:?}", eeg_channels);
1515

1616
let params = BrainFlowInputParamsBuilder::default().build();
17-
let board_id = BoardIds::SyntheticBoard as i32;
1817
let board = board_shim::BoardShim::new(board_id, params).unwrap();
1918

2019
board.prepare_session().unwrap();
@@ -30,7 +29,7 @@ fn main() {
3029
data.slice_mut(s![eeg_channels[0], ..])
3130
.as_slice_mut()
3231
.unwrap(),
33-
WindowFunctions::BlackmanHarris as i32,
32+
WindowFunctions::BlackmanHarris,
3433
)
3534
.unwrap();
3635
let restored_fft = data_filter::perform_ifft(&fft_data, data_len).unwrap();

0 commit comments

Comments
 (0)