Skip to content

Commit

Permalink
Stack layers instead of overriding them (#4273)
Browse files Browse the repository at this point in the history
  • Loading branch information
guilload authored Jan 2, 2024
1 parent 85b3f3e commit 2569065
Show file tree
Hide file tree
Showing 11 changed files with 2,491 additions and 1,265 deletions.
227 changes: 156 additions & 71 deletions quickwit/quickwit-codegen/example/src/codegen/hello.rs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

49 changes: 7 additions & 42 deletions quickwit/quickwit-codegen/example/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -469,15 +469,17 @@ mod tests {
}

#[tokio::test]
async fn test_hello_codegen_tower_layers() {
async fn test_hello_codegen_tower_stack_layers() {
let layer = CounterLayer::default();
let hello_layer = CounterLayer::default();
let goodbye_layer = CounterLayer::default();
let ping_layer = CounterLayer::default();

let mut hello_tower = HelloClient::tower()
.hello_layer(hello_layer.clone())
.goodbye_layer(goodbye_layer.clone())
.ping_layer(ping_layer.clone())
.stack_layer(layer.clone())
.stack_hello_layer(hello_layer.clone())
.stack_goodbye_layer(goodbye_layer.clone())
.stack_ping_layer(ping_layer.clone())
.build(HelloImpl);

hello_tower
Expand Down Expand Up @@ -507,49 +509,12 @@ mod tests {
"Pong, Tower!"
);

assert_eq!(layer.counter.load(Ordering::Relaxed), 3);
assert_eq!(hello_layer.counter.load(Ordering::Relaxed), 1);
assert_eq!(goodbye_layer.counter.load(Ordering::Relaxed), 1);
assert_eq!(ping_layer.counter.load(Ordering::Relaxed), 1);
}

#[tokio::test]
async fn test_hello_codegen_tower_shared_layer() {
let layer = CounterLayer::default();

let mut hello_tower = HelloClient::tower()
.shared_layer(layer.clone())
.build(HelloImpl);

hello_tower
.hello(HelloRequest {
name: "Tower".to_string(),
})
.await
.unwrap();

hello_tower
.goodbye(GoodbyeRequest {
name: "Tower".to_string(),
})
.await
.unwrap();

let (ping_stream_tx, ping_stream) = ServiceStream::new_bounded(1);
let mut pong_stream = hello_tower.ping(ping_stream).await.unwrap();

ping_stream_tx
.try_send(PingRequest {
name: "Tower".to_string(),
})
.unwrap();
assert_eq!(
pong_stream.next().await.unwrap().unwrap().message,
"Pong, Tower!"
);

assert_eq!(layer.counter.load(Ordering::Relaxed), 3);
}

#[tokio::test]
async fn test_from_channel() {
let balance_channed = BalanceChannel::from_channel(
Expand Down
Loading

0 comments on commit 2569065

Please sign in to comment.