Skip to content

Commit a6809e2

Browse files
committed
0.1.4: fix panic on empty batch
1 parent c6dc593 commit a6809e2

File tree

6 files changed

+20
-18
lines changed

6 files changed

+20
-18
lines changed

Cargo.lock

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ cargo add batched
99
Or add this to your `Cargo.toml`:
1010
```toml
1111
[dependencies]
12-
batched = "0.1.3"
12+
batched = "0.1.4"
1313
```
1414

1515
## #[batched]

batched/Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[package]
22
name = "batched"
33
description = "rust macro util for batching expensive operations"
4-
version = "0.1.3"
4+
version = "0.1.4"
55
edition = "2024"
66
license = "MIT"
77
readme = "../README.md"
@@ -10,7 +10,7 @@ keywords = ["batch", "performance", "efficient"]
1010

1111

1212
[dependencies]
13-
batched_derive = { version = "0.1.3", path = "../batched_derive" }
13+
batched_derive = { version = "0.1.4", path = "../batched_derive" }
1414

1515
[dev-dependencies]
1616
tokio = { version = "1.44.2", features = ["full"] }

batched/tests/test.rs

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,30 @@
11
use batched::batched;
22

3-
#[batched(window = 100, limit = 1000)]
4-
fn add(numbers: Vec<u32>) -> u32 {
5-
numbers.iter().sum()
6-
}
7-
83
#[tokio::test]
94
async fn simple() {
5+
#[batched(window = 100, limit = 1000)]
6+
fn add(numbers: Vec<u32>) -> u32 {
7+
numbers.iter().sum()
8+
}
9+
1010
for _ in 0..99 {
11-
tokio::task::spawn(async move { add_multiple(vec![1, 1, 1]).await });
11+
tokio::task::spawn(async move {
12+
add_multiple(vec![1, 1, 1]).await
13+
});
1214
}
1315

1416
let total = add_multiple(vec![1, 1, 1]).await;
1517
let expected_total = 100 * 3;
1618
assert_eq!(total, expected_total);
1719
}
1820

19-
#[batched(window = 100, limit = 1000, boxed)]
20-
fn error(_a: Vec<()>) -> Result<(), std::io::Error> {
21-
return Err(std::io::Error::other("1234")).into();
22-
}
23-
2421
#[tokio::test]
2522
async fn propagates_errors() {
23+
#[batched(window = 100, limit = 1000, boxed)]
24+
fn error(_a: Vec<()>) -> Result<(), std::io::Error> {
25+
return Err(std::io::Error::other("1234")).into();
26+
}
27+
2628
let result = error(()).await;
2729
assert_eq!(result.is_err(), true);
2830
}

batched_derive/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[package]
22
name = "batched_derive"
33
description = "rust macro util for batching expensive operations"
4-
version = "0.1.3"
4+
version = "0.1.4"
55
edition = "2024"
66
license = "MIT"
77
readme = "../README.md"

batched_derive/src/builder.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ pub fn build_code(call_function: Function, options: Attributes) -> TokenStream {
8383

8484
std::mem::swap(&mut calls, &mut buffer);
8585
std::mem::swap(&mut return_channels, &mut channels);
86-
if calls.is_empty() {
86+
if calls.is_empty() && return_channels.is_empty() {
8787
continue
8888
}
8989

0 commit comments

Comments
 (0)