Skip to content

Commit db9eb4a

Browse files
authored
feat(pubsub)!: Rename PublisherFactory to Client (#3905)
This new naming is consistent with the Publisher design: go/cloud-rust:pubsub-publisher-design
1 parent f6e9b00 commit db9eb4a

4 files changed

Lines changed: 54 additions & 54 deletions

File tree

src/integration-tests/src/pubsub.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,15 @@
1515
use crate::{Error, Result};
1616

1717
use futures::future::join_all;
18-
use pubsub::client::PublisherFactory;
18+
use pubsub::client::Client;
1919
use pubsub::model::PubsubMessage;
2020
pub use pubsub_samples::{cleanup_test_topic, create_test_topic};
2121

2222
pub async fn basic_publisher() -> Result<()> {
2323
let (topic_admin, topic) = create_test_topic().await?;
2424

2525
tracing::info!("testing publish()");
26-
let client = PublisherFactory::builder().build().await?;
26+
let client = Client::builder().build().await?;
2727
let publisher = client.publisher(topic.name.clone()).build();
2828
let messages: [PubsubMessage; 2] = [
2929
PubsubMessage::new().set_data("Hello"),

src/pubsub/src/lib.rs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
//! * [SchemaService][client::SchemaService]
3030
//!
3131
//! For publishing messages:
32-
//! * [PublisherFactory][client::PublisherFactory] and [Publisher][client::Publisher]
32+
//! * [Client][client::Client] and [Publisher][client::Publisher]
3333
//!
3434
//! Receiving messages is not yet supported by this crate.
3535
//!
@@ -54,7 +54,7 @@ pub mod builder {
5454
pub mod publisher {
5555
#[doc(hidden)]
5656
pub use crate::generated::gapic_dataplane::builder::publisher::*;
57-
pub use crate::publisher::client::PublisherFactoryBuilder;
57+
pub use crate::publisher::client::ClientBuilder;
5858
pub use crate::publisher::publisher::PublisherBuilder;
5959
}
6060
/// Request and client builders for the [SchemaService][crate::client::SchemaService] client.
@@ -86,14 +86,14 @@ pub mod model_ext {
8686
///
8787
/// ```
8888
/// # async fn sample() -> anyhow::Result<()> {
89-
/// use google_cloud_pubsub::client::PublisherFactory;
89+
/// use google_cloud_pubsub::client::Client;
9090
/// use google_cloud_pubsub::model::PubsubMessage;
9191
///
92-
/// // Create a factory for creating publishers.
93-
/// let factory = PublisherFactory::builder().build().await?;
92+
/// // Create a client for creating publishers.
93+
/// let client = Client::builder().build().await?;
9494
///
9595
/// // Create a publisher that handles batching for a specific topic.
96-
/// let publisher = factory.publisher("projects/my-project/topics/my-topic").build();
96+
/// let publisher = client.publisher("projects/my-project/topics/my-topic").build();
9797
///
9898
/// // Publish several messages.
9999
/// // The client will automatically batch them in the background.
@@ -115,7 +115,7 @@ pub mod model_ext {
115115
/// ```
116116
pub mod client {
117117
pub use crate::generated::gapic::client::*;
118-
pub use crate::publisher::client::PublisherFactory;
118+
pub use crate::publisher::client::Client;
119119
pub use crate::publisher::publisher::Publisher;
120120
}
121121

src/pubsub/src/publisher/client.rs

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -16,22 +16,22 @@ use crate::publisher::publisher::PublisherBuilder;
1616

1717
/// Creates [`Publisher`](super::publisher::Publisher) instances.
1818
///
19-
/// This is the main entry point for the publisher API. A single `PublisherFactory`
19+
/// This is the main entry point for the publisher API. A single `Client`
2020
/// can be used to create multiple `Publisher` clients for different topics.
2121
/// It manages the underlying gRPC connection and authentication.
2222
///
2323
/// # Example
2424
///
2525
/// ```
2626
/// # async fn sample() -> anyhow::Result<()> {
27-
/// # use google_cloud_pubsub::client::PublisherFactory;
27+
/// # use google_cloud_pubsub::client::Client;
2828
/// # use google_cloud_pubsub::model::PubsubMessage;
2929
///
30-
/// // Create a factory.
31-
/// let factory = PublisherFactory::builder().build().await?;
30+
/// // Create a client.
31+
/// let client = Client::builder().build().await?;
3232
///
3333
/// // Create a publisher for a specific topic.
34-
/// let publisher = factory.publisher("projects/my-project/topics/my-topic").build();
34+
/// let publisher = client.publisher("projects/my-project/topics/my-topic").build();
3535
///
3636
/// // Publish a message.
3737
/// let handle = publisher.publish(PubsubMessage::new().set_data("hello world"));
@@ -41,32 +41,32 @@ use crate::publisher::publisher::PublisherBuilder;
4141
/// # }
4242
/// ```
4343
#[derive(Clone, Debug)]
44-
pub struct PublisherFactory {
44+
pub struct Client {
4545
pub(crate) inner: crate::generated::gapic_dataplane::client::Publisher,
4646
}
4747

48-
/// A builder for [PublisherFactory].
48+
/// A builder for [Client].
4949
///
5050
/// ```
5151
/// # async fn sample() -> anyhow::Result<()> {
5252
/// # use google_cloud_pubsub::*;
53-
/// # use builder::publisher::PublisherFactoryBuilder;
54-
/// # use client::PublisherFactory;
55-
/// let builder: PublisherFactoryBuilder = PublisherFactory::builder();
56-
/// let factory = builder
53+
/// # use builder::publisher::ClientBuilder;
54+
/// # use client::Client;
55+
/// let builder: ClientBuilder = Client::builder();
56+
/// let client = builder
5757
/// .with_endpoint("https://pubsub.googleapis.com")
5858
/// .build().await?;
5959
/// # Ok(()) }
6060
/// ```
61-
pub type PublisherFactoryBuilder =
61+
pub type ClientBuilder =
6262
gax::client_builder::ClientBuilder<client_builder::Factory, gaxi::options::Credentials>;
6363

6464
pub(crate) mod client_builder {
65-
use super::PublisherFactory;
65+
use super::Client;
6666

6767
pub struct Factory;
6868
impl gax::client_builder::internal::ClientFactory for Factory {
69-
type Client = PublisherFactory;
69+
type Client = Client;
7070
type Credentials = gaxi::options::Credentials;
7171
#[allow(unused_mut)]
7272
async fn build(
@@ -79,16 +79,16 @@ pub(crate) mod client_builder {
7979
}
8080
}
8181

82-
impl PublisherFactory {
83-
/// Returns a builder for [PublisherFactory].
82+
impl Client {
83+
/// Returns a builder for [Client].
8484
///
8585
/// ```no_run
8686
/// # tokio_test::block_on(async {
87-
/// # use google_cloud_pubsub::client::PublisherFactory;
88-
/// let factory = PublisherFactory::builder().build().await?;
87+
/// # use google_cloud_pubsub::client::Client;
88+
/// let client = Client::builder().build().await?;
8989
/// # gax::client_builder::Result::<()>::Ok(()) });
9090
/// ```
91-
pub fn builder() -> PublisherFactoryBuilder {
91+
pub fn builder() -> ClientBuilder {
9292
gax::client_builder::internal::new_builder(client_builder::Factory)
9393
}
9494

@@ -105,11 +105,11 @@ impl PublisherFactory {
105105
/// ```
106106
/// # async fn sample() -> anyhow::Result<()> {
107107
/// # use google_cloud_pubsub::*;
108-
/// # use builder::publisher::PublisherFactoryBuilder;
109-
/// # use client::PublisherFactory;
108+
/// # use builder::publisher::ClientBuilder;
109+
/// # use client::Client;
110110
/// # use model::PubsubMessage;
111-
/// let factory = PublisherFactory::builder().build().await?;
112-
/// let publisher = factory.publisher("projects/my-project/topics/my-topic").build();
111+
/// let client = Client::builder().build().await?;
112+
/// let publisher = client.publisher("projects/my-project/topics/my-topic").build();
113113
/// let message_id = publisher.publish(PubsubMessage::new().set_data("Hello, World")).await?;
114114
/// # Ok(()) }
115115
/// ```
@@ -123,11 +123,11 @@ impl PublisherFactory {
123123

124124
#[cfg(test)]
125125
mod tests {
126-
use super::PublisherFactory;
126+
use super::Client;
127127

128128
#[tokio::test]
129129
async fn builder() -> anyhow::Result<()> {
130-
let client = PublisherFactory::builder()
130+
let client = Client::builder()
131131
.with_credentials(auth::credentials::anonymous::Builder::new().build())
132132
.build()
133133
.await?;

src/pubsub/src/publisher/publisher.rs

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -30,15 +30,15 @@ const MAX_BYTES: u32 = 1e7 as u32; // 10MB
3030
/// A `Publisher` sends messages to a specific topic. It manages message batching
3131
/// and sending in a background task.
3232
///
33-
/// Publishers are created via a [`PublisherFactory`](crate::client::PublisherFactory).
33+
/// Publishers are created via a [`Client`](crate::client::Client).
3434
///
3535
/// ```
3636
/// # async fn sample() -> anyhow::Result<()> {
3737
/// # use google_cloud_pubsub::*;
38-
/// # use client::PublisherFactory;
38+
/// # use client::Client;
3939
/// # use model::PubsubMessage;
40-
/// let factory = PublisherFactory::builder().build().await?;
41-
/// let publisher = factory.publisher("projects/my-project/topics/my-topic").build();
40+
/// let client = Client::builder().build().await?;
41+
/// let publisher = client.publisher("projects/my-project/topics/my-topic").build();
4242
/// let message_id = publisher.publish(PubsubMessage::new().set_data("Hello, World"));
4343
/// # Ok(()) }
4444
/// ```
@@ -122,17 +122,17 @@ impl Publisher {
122122

123123
/// Creates `Publisher`s.
124124
///
125-
/// Publishers are created via a [`PublisherFactory`][crate::client::PublisherFactory].
125+
/// Publishers are created via a [`Client`][crate::client::Client].
126126
///
127127
/// # Example
128128
///
129129
/// ```
130130
/// # async fn sample() -> anyhow::Result<()> {
131131
/// # use google_cloud_pubsub::*;
132-
/// # use builder::publisher::PublisherFactoryBuilder;
133-
/// # use client::PublisherFactory;
134-
/// let factory = PublisherFactory::builder().build().await?;
135-
/// let publisher = factory.publisher("projects/my-project/topics/topic").build();
132+
/// # use builder::publisher::ClientBuilder;
133+
/// # use client::Client;
134+
/// let client = Client::builder().build().await?;
135+
/// let publisher = client.publisher("projects/my-project/topics/topic").build();
136136
/// # Ok(()) }
137137
/// ```
138138
#[derive(Clone, Debug)]
@@ -159,10 +159,10 @@ impl PublisherBuilder {
159159
///
160160
/// # Example
161161
/// ```
162-
/// # use google_cloud_pubsub::client::PublisherFactory;
162+
/// # use google_cloud_pubsub::client::Client;
163163
/// # async fn sample() -> anyhow::Result<()> {
164-
/// # let factory = PublisherFactory::builder().build().await?;
165-
/// let publisher = factory.publisher("projects/my-project/topics/my-topic")
164+
/// # let client = Client::builder().build().await?;
165+
/// let publisher = client.publisher("projects/my-project/topics/my-topic")
166166
/// .set_message_count_threshold(100)
167167
/// .build();
168168
/// # Ok(()) }
@@ -178,11 +178,11 @@ impl PublisherBuilder {
178178
///
179179
/// # Example
180180
/// ```
181-
/// # use google_cloud_pubsub::client::PublisherFactory;
181+
/// # use google_cloud_pubsub::client::Client;
182182
/// # use std::time::Duration;
183183
/// # async fn sample() -> anyhow::Result<()> {
184-
/// # let factory = PublisherFactory::builder().build().await?;
185-
/// let publisher = factory.publisher("projects/my-project/topics/my-topic")
184+
/// # let client = Client::builder().build().await?;
185+
/// let publisher = client.publisher("projects/my-project/topics/my-topic")
186186
/// .set_delay_threshold(Duration::from_millis(50))
187187
/// .build();
188188
/// # Ok(()) }
@@ -431,7 +431,7 @@ impl Batch {
431431
#[cfg(test)]
432432
mod tests {
433433
use super::*;
434-
use crate::{client::PublisherFactory, publisher::options::BatchingOptions};
434+
use crate::{client::Client, publisher::options::BatchingOptions};
435435
use crate::{
436436
generated::gapic_dataplane::client::Publisher as GapicPublisher,
437437
model::{PublishResponse, PubsubMessage},
@@ -792,16 +792,16 @@ mod tests {
792792

793793
#[tokio::test]
794794
async fn builder() -> anyhow::Result<()> {
795-
let factory = PublisherFactory::builder().build().await?;
796-
let builder = factory.publisher("projects/my-project/topics/my-topic".to_string());
795+
let client = Client::builder().build().await?;
796+
let builder = client.publisher("projects/my-project/topics/my-topic".to_string());
797797
let publisher = builder.set_message_count_threshold(1_u32).build();
798798
assert_eq!(publisher.batching_options.message_count_threshold, 1_u32);
799799
Ok(())
800800
}
801801

802802
#[tokio::test]
803803
async fn default_batching() -> anyhow::Result<()> {
804-
let client = PublisherFactory::builder().build().await?;
804+
let client = Client::builder().build().await?;
805805
let publisher = client
806806
.publisher("projects/my-project/topics/my-topic".to_string())
807807
.build();
@@ -829,7 +829,7 @@ mod tests {
829829
.set_message_count_threshold(MAX_MESSAGES + 1)
830830
.set_byte_threshold(MAX_BYTES + 1);
831831

832-
let client = PublisherFactory::builder().build().await?;
832+
let client = Client::builder().build().await?;
833833
let publisher = client
834834
.publisher("projects/my-project/topics/my-topic".to_string())
835835
.set_delay_threshold(oversized_options.delay_threshold)

0 commit comments

Comments
 (0)