From 8e5c5dd4cff158df1ad2e9191fc45343a2be223c Mon Sep 17 00:00:00 2001 From: Rauno Viskus Date: Wed, 5 Mar 2025 12:05:18 +0200 Subject: [PATCH] Make the return type of `update_stream` match with `create_stream` --- async-nats/src/jetstream/context.rs | 17 ++++++++++------- async-nats/tests/jetstream_tests.rs | 3 ++- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/async-nats/src/jetstream/context.rs b/async-nats/src/jetstream/context.rs index ae13e8429..2c4836b53 100644 --- a/async-nats/src/jetstream/context.rs +++ b/async-nats/src/jetstream/context.rs @@ -28,7 +28,6 @@ use futures::{Future, StreamExt, TryFutureExt}; use serde::de::DeserializeOwned; use serde::{Deserialize, Serialize}; use serde_json::{self, json}; -use std::borrow::Borrow; use std::fmt::Display; use std::future::IntoFuture; use std::pin::Pin; @@ -510,7 +509,7 @@ impl Context { /// let jetstream = async_nats::jetstream::new(client); /// /// let stream = jetstream - /// .update_stream(&Config { + /// .update_stream(Config { /// name: "events".to_string(), /// discard: DiscardPolicy::New, /// max_messages: 50_000, @@ -520,11 +519,11 @@ impl Context { /// # Ok(()) /// # } /// ``` - pub async fn update_stream(&self, config: S) -> Result + pub async fn update_stream(&self, config: S) -> Result where - S: Borrow, + S: Into, { - let config = config.borrow(); + let config: Config = config.into(); if config.name.is_empty() { return Err(CreateStreamError::new( @@ -539,9 +538,13 @@ impl Context { } let subject = format!("STREAM.UPDATE.{}", config.name); - match self.request(subject, config).await? { + match self.request(subject, &config).await? { Response::Err { error } => Err(error.into()), - Response::Ok(info) => Ok(info), + Response::Ok(info) => Ok(Stream { + context: self.clone(), + info, + name: config.name, + }), } } diff --git a/async-nats/tests/jetstream_tests.rs b/async-nats/tests/jetstream_tests.rs index 3bd6ca895..364d97550 100755 --- a/async-nats/tests/jetstream_tests.rs +++ b/async-nats/tests/jetstream_tests.rs @@ -550,7 +550,7 @@ mod jetstream { let context = async_nats::jetstream::new(client); let _stream = context.create_stream("events").await.unwrap(); - let info = context + let stream = context .update_stream(stream::Config { name: "events".into(), max_messages: 1000, @@ -559,6 +559,7 @@ mod jetstream { }) .await .unwrap(); + let info = &stream.cached_info(); context.update_stream(&info.config).await.unwrap(); assert_eq!(info.config.max_messages, 1000); assert_eq!(info.config.max_messages_per_subject, 100);