pub struct AdminBuilder { /* private fields */ }Expand description
Builder for creating and configuring admin clients
§Examples
ⓘ
use rocketmq_admin_core::core::admin::AdminBuilder;
// Simple usage
let admin = AdminBuilder::new()
.namesrv_addr("127.0.0.1:9876")
.build_and_start()
.await?;
// With custom configuration
let admin = AdminBuilder::new()
.namesrv_addr("127.0.0.1:9876;127.0.0.1:9877")
.instance_name("my-admin-tool")
.timeout_millis(5000)
.build_and_start()
.await?;Implementations§
Source§impl AdminBuilder
impl AdminBuilder
Sourcepub fn new() -> Self
pub fn new() -> Self
Create a new builder with default configuration
Examples found in repository?
examples/admin_builder_pattern.rs (line 50)
47async fn example_builder() -> RocketMQResult<()> {
48 println!("\n=== Example 2: Builder Pattern ===");
49
50 let admin = AdminBuilder::new()
51 .namesrv_addr("127.0.0.1:9876")
52 .instance_name("example-admin")
53 .timeout_millis(5000)
54 .build_with_guard()
55 .await?;
56
57 // Get topic route info
58 let route = admin.examine_topic_route_info("TestTopic".into()).await?;
59
60 if let Some(route_data) = route {
61 println!("Queue data count: {}", route_data.queue_datas.len());
62 println!("Broker data count: {}", route_data.broker_datas.len());
63 } else {
64 println!("No route data found for TestTopic");
65 }
66
67 Ok(())
68}
69
70/// Example 3: Multiple NameServers with fallback
71async fn example_multiple_namesrv() -> RocketMQResult<()> {
72 println!("\n=== Example 3: Multiple NameServers ===");
73
74 // Try primary NameServers
75 let result = AdminBuilder::new()
76 .namesrv_addr("127.0.0.1:9876;127.0.0.1:9877")
77 .build_with_guard()
78 .await;
79
80 let _admin = match result {
81 Ok(admin) => {
82 println!("Connected to primary NameServer");
83 admin
84 }
85 Err(e) => {
86 eprintln!("Primary NameServer failed: {e}");
87 eprintln!("Falling back to backup...");
88
89 // Fallback to backup
90 AdminBuilder::new()
91 .namesrv_addr("127.0.0.1:9878")
92 .build_with_guard()
93 .await?
94 }
95 };
96
97 println!("Admin client ready");
98
99 Ok(())
100}
101
102/// Example 4: Early return with automatic cleanup
103async fn example_early_return(topic: &str) -> RocketMQResult<()> {
104 println!("\n=== Example 4: Early Return ===");
105
106 let admin = AdminBuilder::new()
107 .namesrv_addr("127.0.0.1:9876")
108 .build_with_guard()
109 .await?;
110
111 // Get topic route
112 let route = admin.examine_topic_route_info(topic.into()).await?;
113
114 // Early return if no route data - admin still cleaned up!
115 let Some(route_data) = route else {
116 println!("Topic '{}' not found, exiting early", topic);
117 return Ok(());
118 };
119
120 // Early return if no queues - admin still cleaned up!
121 if route_data.queue_datas.is_empty() {
122 println!("Topic '{}' has no queues, exiting early", topic);
123 return Ok(());
124 }
125
126 println!("Topic '{}' has {} queues", topic, route_data.queue_datas.len());
127
128 // Process queues...
129 for queue in &route_data.queue_datas {
130 println!(
131 " Broker: {}, ReadQueueNums: {}, WriteQueueNums: {}",
132 queue.broker_name, queue.read_queue_nums, queue.write_queue_nums
133 );
134 }
135
136 Ok(())
137}
138
139/// Example 5: Explicit shutdown for logging
140async fn example_explicit_shutdown() -> RocketMQResult<()> {
141 println!("\n=== Example 5: Explicit Shutdown ===");
142
143 let admin = AdminBuilder::new()
144 .namesrv_addr("127.0.0.1:9876")
145 .instance_name("explicit-shutdown-example")
146 .build_with_guard()
147 .await?;
148
149 // Use admin...
150 println!("Admin client started successfully");
151
152 // Explicit shutdown with logging
153 println!("Shutting down admin client...");
154 admin.shutdown().await;
155 println!("Shutdown complete");
156
157 Ok(())
158}
159
160/// Example 6: Dynamic configuration from environment
161async fn example_from_environment() -> RocketMQResult<()> {
162 println!("\n=== Example 6: Environment Configuration ===");
163
164 use std::env;
165
166 // Read from environment with defaults
167 let namesrv_addr = env::var("NAMESRV_ADDR").unwrap_or_else(|_| "127.0.0.1:9876".to_string());
168
169 let instance_name = env::var("INSTANCE_NAME").unwrap_or_else(|_| "env-admin".to_string());
170
171 println!("NameServer: {}", namesrv_addr);
172 println!("Instance: {}", instance_name);
173
174 let _admin = AdminBuilder::new()
175 .namesrv_addr(namesrv_addr)
176 .instance_name(instance_name)
177 .build_with_guard()
178 .await?;
179
180 println!("Admin configured from environment");
181
182 Ok(())
183}
184
185/// Example 7: Without RAII (manual cleanup)
186async fn example_manual_cleanup() -> RocketMQResult<()> {
187 println!("\n=== Example 7: Manual Cleanup ===");
188
189 // Use build_and_start() instead of build_with_guard()
190 let mut admin = AdminBuilder::new()
191 .namesrv_addr("127.0.0.1:9876")
192 .build_and_start() // Returns DefaultMQAdminExt directly
193 .await?;
194
195 // Use admin...
196 println!("Admin started");
197
198 // Manual shutdown required
199 admin.shutdown().await;
200 println!("Manually shut down");
201
202 Ok(())
203}Sourcepub fn namesrv_addr(self, addr: impl Into<String>) -> Self
pub fn namesrv_addr(self, addr: impl Into<String>) -> Self
Set NameServer address
Supports multiple addresses separated by semicolon:
- Single:
"127.0.0.1:9876" - Multiple:
"127.0.0.1:9876;127.0.0.1:9877"
Examples found in repository?
examples/admin_builder_pattern.rs (line 51)
47async fn example_builder() -> RocketMQResult<()> {
48 println!("\n=== Example 2: Builder Pattern ===");
49
50 let admin = AdminBuilder::new()
51 .namesrv_addr("127.0.0.1:9876")
52 .instance_name("example-admin")
53 .timeout_millis(5000)
54 .build_with_guard()
55 .await?;
56
57 // Get topic route info
58 let route = admin.examine_topic_route_info("TestTopic".into()).await?;
59
60 if let Some(route_data) = route {
61 println!("Queue data count: {}", route_data.queue_datas.len());
62 println!("Broker data count: {}", route_data.broker_datas.len());
63 } else {
64 println!("No route data found for TestTopic");
65 }
66
67 Ok(())
68}
69
70/// Example 3: Multiple NameServers with fallback
71async fn example_multiple_namesrv() -> RocketMQResult<()> {
72 println!("\n=== Example 3: Multiple NameServers ===");
73
74 // Try primary NameServers
75 let result = AdminBuilder::new()
76 .namesrv_addr("127.0.0.1:9876;127.0.0.1:9877")
77 .build_with_guard()
78 .await;
79
80 let _admin = match result {
81 Ok(admin) => {
82 println!("Connected to primary NameServer");
83 admin
84 }
85 Err(e) => {
86 eprintln!("Primary NameServer failed: {e}");
87 eprintln!("Falling back to backup...");
88
89 // Fallback to backup
90 AdminBuilder::new()
91 .namesrv_addr("127.0.0.1:9878")
92 .build_with_guard()
93 .await?
94 }
95 };
96
97 println!("Admin client ready");
98
99 Ok(())
100}
101
102/// Example 4: Early return with automatic cleanup
103async fn example_early_return(topic: &str) -> RocketMQResult<()> {
104 println!("\n=== Example 4: Early Return ===");
105
106 let admin = AdminBuilder::new()
107 .namesrv_addr("127.0.0.1:9876")
108 .build_with_guard()
109 .await?;
110
111 // Get topic route
112 let route = admin.examine_topic_route_info(topic.into()).await?;
113
114 // Early return if no route data - admin still cleaned up!
115 let Some(route_data) = route else {
116 println!("Topic '{}' not found, exiting early", topic);
117 return Ok(());
118 };
119
120 // Early return if no queues - admin still cleaned up!
121 if route_data.queue_datas.is_empty() {
122 println!("Topic '{}' has no queues, exiting early", topic);
123 return Ok(());
124 }
125
126 println!("Topic '{}' has {} queues", topic, route_data.queue_datas.len());
127
128 // Process queues...
129 for queue in &route_data.queue_datas {
130 println!(
131 " Broker: {}, ReadQueueNums: {}, WriteQueueNums: {}",
132 queue.broker_name, queue.read_queue_nums, queue.write_queue_nums
133 );
134 }
135
136 Ok(())
137}
138
139/// Example 5: Explicit shutdown for logging
140async fn example_explicit_shutdown() -> RocketMQResult<()> {
141 println!("\n=== Example 5: Explicit Shutdown ===");
142
143 let admin = AdminBuilder::new()
144 .namesrv_addr("127.0.0.1:9876")
145 .instance_name("explicit-shutdown-example")
146 .build_with_guard()
147 .await?;
148
149 // Use admin...
150 println!("Admin client started successfully");
151
152 // Explicit shutdown with logging
153 println!("Shutting down admin client...");
154 admin.shutdown().await;
155 println!("Shutdown complete");
156
157 Ok(())
158}
159
160/// Example 6: Dynamic configuration from environment
161async fn example_from_environment() -> RocketMQResult<()> {
162 println!("\n=== Example 6: Environment Configuration ===");
163
164 use std::env;
165
166 // Read from environment with defaults
167 let namesrv_addr = env::var("NAMESRV_ADDR").unwrap_or_else(|_| "127.0.0.1:9876".to_string());
168
169 let instance_name = env::var("INSTANCE_NAME").unwrap_or_else(|_| "env-admin".to_string());
170
171 println!("NameServer: {}", namesrv_addr);
172 println!("Instance: {}", instance_name);
173
174 let _admin = AdminBuilder::new()
175 .namesrv_addr(namesrv_addr)
176 .instance_name(instance_name)
177 .build_with_guard()
178 .await?;
179
180 println!("Admin configured from environment");
181
182 Ok(())
183}
184
185/// Example 7: Without RAII (manual cleanup)
186async fn example_manual_cleanup() -> RocketMQResult<()> {
187 println!("\n=== Example 7: Manual Cleanup ===");
188
189 // Use build_and_start() instead of build_with_guard()
190 let mut admin = AdminBuilder::new()
191 .namesrv_addr("127.0.0.1:9876")
192 .build_and_start() // Returns DefaultMQAdminExt directly
193 .await?;
194
195 // Use admin...
196 println!("Admin started");
197
198 // Manual shutdown required
199 admin.shutdown().await;
200 println!("Manually shut down");
201
202 Ok(())
203}Sourcepub fn instance_name(self, name: impl Into<String>) -> Self
pub fn instance_name(self, name: impl Into<String>) -> Self
Set custom instance name
If not set, defaults to "tools-{timestamp}"
Examples found in repository?
examples/admin_builder_pattern.rs (line 52)
47async fn example_builder() -> RocketMQResult<()> {
48 println!("\n=== Example 2: Builder Pattern ===");
49
50 let admin = AdminBuilder::new()
51 .namesrv_addr("127.0.0.1:9876")
52 .instance_name("example-admin")
53 .timeout_millis(5000)
54 .build_with_guard()
55 .await?;
56
57 // Get topic route info
58 let route = admin.examine_topic_route_info("TestTopic".into()).await?;
59
60 if let Some(route_data) = route {
61 println!("Queue data count: {}", route_data.queue_datas.len());
62 println!("Broker data count: {}", route_data.broker_datas.len());
63 } else {
64 println!("No route data found for TestTopic");
65 }
66
67 Ok(())
68}
69
70/// Example 3: Multiple NameServers with fallback
71async fn example_multiple_namesrv() -> RocketMQResult<()> {
72 println!("\n=== Example 3: Multiple NameServers ===");
73
74 // Try primary NameServers
75 let result = AdminBuilder::new()
76 .namesrv_addr("127.0.0.1:9876;127.0.0.1:9877")
77 .build_with_guard()
78 .await;
79
80 let _admin = match result {
81 Ok(admin) => {
82 println!("Connected to primary NameServer");
83 admin
84 }
85 Err(e) => {
86 eprintln!("Primary NameServer failed: {e}");
87 eprintln!("Falling back to backup...");
88
89 // Fallback to backup
90 AdminBuilder::new()
91 .namesrv_addr("127.0.0.1:9878")
92 .build_with_guard()
93 .await?
94 }
95 };
96
97 println!("Admin client ready");
98
99 Ok(())
100}
101
102/// Example 4: Early return with automatic cleanup
103async fn example_early_return(topic: &str) -> RocketMQResult<()> {
104 println!("\n=== Example 4: Early Return ===");
105
106 let admin = AdminBuilder::new()
107 .namesrv_addr("127.0.0.1:9876")
108 .build_with_guard()
109 .await?;
110
111 // Get topic route
112 let route = admin.examine_topic_route_info(topic.into()).await?;
113
114 // Early return if no route data - admin still cleaned up!
115 let Some(route_data) = route else {
116 println!("Topic '{}' not found, exiting early", topic);
117 return Ok(());
118 };
119
120 // Early return if no queues - admin still cleaned up!
121 if route_data.queue_datas.is_empty() {
122 println!("Topic '{}' has no queues, exiting early", topic);
123 return Ok(());
124 }
125
126 println!("Topic '{}' has {} queues", topic, route_data.queue_datas.len());
127
128 // Process queues...
129 for queue in &route_data.queue_datas {
130 println!(
131 " Broker: {}, ReadQueueNums: {}, WriteQueueNums: {}",
132 queue.broker_name, queue.read_queue_nums, queue.write_queue_nums
133 );
134 }
135
136 Ok(())
137}
138
139/// Example 5: Explicit shutdown for logging
140async fn example_explicit_shutdown() -> RocketMQResult<()> {
141 println!("\n=== Example 5: Explicit Shutdown ===");
142
143 let admin = AdminBuilder::new()
144 .namesrv_addr("127.0.0.1:9876")
145 .instance_name("explicit-shutdown-example")
146 .build_with_guard()
147 .await?;
148
149 // Use admin...
150 println!("Admin client started successfully");
151
152 // Explicit shutdown with logging
153 println!("Shutting down admin client...");
154 admin.shutdown().await;
155 println!("Shutdown complete");
156
157 Ok(())
158}
159
160/// Example 6: Dynamic configuration from environment
161async fn example_from_environment() -> RocketMQResult<()> {
162 println!("\n=== Example 6: Environment Configuration ===");
163
164 use std::env;
165
166 // Read from environment with defaults
167 let namesrv_addr = env::var("NAMESRV_ADDR").unwrap_or_else(|_| "127.0.0.1:9876".to_string());
168
169 let instance_name = env::var("INSTANCE_NAME").unwrap_or_else(|_| "env-admin".to_string());
170
171 println!("NameServer: {}", namesrv_addr);
172 println!("Instance: {}", instance_name);
173
174 let _admin = AdminBuilder::new()
175 .namesrv_addr(namesrv_addr)
176 .instance_name(instance_name)
177 .build_with_guard()
178 .await?;
179
180 println!("Admin configured from environment");
181
182 Ok(())
183}Sourcepub fn timeout_millis(self, timeout: u64) -> Self
pub fn timeout_millis(self, timeout: u64) -> Self
Set timeout in milliseconds
Examples found in repository?
examples/admin_builder_pattern.rs (line 53)
47async fn example_builder() -> RocketMQResult<()> {
48 println!("\n=== Example 2: Builder Pattern ===");
49
50 let admin = AdminBuilder::new()
51 .namesrv_addr("127.0.0.1:9876")
52 .instance_name("example-admin")
53 .timeout_millis(5000)
54 .build_with_guard()
55 .await?;
56
57 // Get topic route info
58 let route = admin.examine_topic_route_info("TestTopic".into()).await?;
59
60 if let Some(route_data) = route {
61 println!("Queue data count: {}", route_data.queue_datas.len());
62 println!("Broker data count: {}", route_data.broker_datas.len());
63 } else {
64 println!("No route data found for TestTopic");
65 }
66
67 Ok(())
68}Sourcepub async fn build_and_start(self) -> RocketMQResult<DefaultMQAdminExt>
pub async fn build_and_start(self) -> RocketMQResult<DefaultMQAdminExt>
Build and start the admin client
This will:
- Create a new DefaultMQAdminExt instance
- Apply all configuration
- Start the client (establish connections)
§Errors
Returns error if:
- NameServer address is invalid
- Connection cannot be established
- Network I/O fails
Examples found in repository?
examples/admin_builder_pattern.rs (line 192)
186async fn example_manual_cleanup() -> RocketMQResult<()> {
187 println!("\n=== Example 7: Manual Cleanup ===");
188
189 // Use build_and_start() instead of build_with_guard()
190 let mut admin = AdminBuilder::new()
191 .namesrv_addr("127.0.0.1:9876")
192 .build_and_start() // Returns DefaultMQAdminExt directly
193 .await?;
194
195 // Use admin...
196 println!("Admin started");
197
198 // Manual shutdown required
199 admin.shutdown().await;
200 println!("Manually shut down");
201
202 Ok(())
203}Sourcepub async fn build_with_guard(self) -> RocketMQResult<AdminGuard>
pub async fn build_with_guard(self) -> RocketMQResult<AdminGuard>
Build the admin client with RAII auto-cleanup
Returns an AdminGuard that automatically calls shutdown when dropped.
§Examples
ⓘ
{
let admin = AdminBuilder::new()
.namesrv_addr("127.0.0.1:9876")
.build_with_guard()
.await?;
// Use admin...
let clusters = TopicService::get_topic_cluster_list(&admin, "MyTopic").await?;
} // admin automatically cleaned up hereExamples found in repository?
examples/admin_builder_pattern.rs (line 54)
47async fn example_builder() -> RocketMQResult<()> {
48 println!("\n=== Example 2: Builder Pattern ===");
49
50 let admin = AdminBuilder::new()
51 .namesrv_addr("127.0.0.1:9876")
52 .instance_name("example-admin")
53 .timeout_millis(5000)
54 .build_with_guard()
55 .await?;
56
57 // Get topic route info
58 let route = admin.examine_topic_route_info("TestTopic".into()).await?;
59
60 if let Some(route_data) = route {
61 println!("Queue data count: {}", route_data.queue_datas.len());
62 println!("Broker data count: {}", route_data.broker_datas.len());
63 } else {
64 println!("No route data found for TestTopic");
65 }
66
67 Ok(())
68}
69
70/// Example 3: Multiple NameServers with fallback
71async fn example_multiple_namesrv() -> RocketMQResult<()> {
72 println!("\n=== Example 3: Multiple NameServers ===");
73
74 // Try primary NameServers
75 let result = AdminBuilder::new()
76 .namesrv_addr("127.0.0.1:9876;127.0.0.1:9877")
77 .build_with_guard()
78 .await;
79
80 let _admin = match result {
81 Ok(admin) => {
82 println!("Connected to primary NameServer");
83 admin
84 }
85 Err(e) => {
86 eprintln!("Primary NameServer failed: {e}");
87 eprintln!("Falling back to backup...");
88
89 // Fallback to backup
90 AdminBuilder::new()
91 .namesrv_addr("127.0.0.1:9878")
92 .build_with_guard()
93 .await?
94 }
95 };
96
97 println!("Admin client ready");
98
99 Ok(())
100}
101
102/// Example 4: Early return with automatic cleanup
103async fn example_early_return(topic: &str) -> RocketMQResult<()> {
104 println!("\n=== Example 4: Early Return ===");
105
106 let admin = AdminBuilder::new()
107 .namesrv_addr("127.0.0.1:9876")
108 .build_with_guard()
109 .await?;
110
111 // Get topic route
112 let route = admin.examine_topic_route_info(topic.into()).await?;
113
114 // Early return if no route data - admin still cleaned up!
115 let Some(route_data) = route else {
116 println!("Topic '{}' not found, exiting early", topic);
117 return Ok(());
118 };
119
120 // Early return if no queues - admin still cleaned up!
121 if route_data.queue_datas.is_empty() {
122 println!("Topic '{}' has no queues, exiting early", topic);
123 return Ok(());
124 }
125
126 println!("Topic '{}' has {} queues", topic, route_data.queue_datas.len());
127
128 // Process queues...
129 for queue in &route_data.queue_datas {
130 println!(
131 " Broker: {}, ReadQueueNums: {}, WriteQueueNums: {}",
132 queue.broker_name, queue.read_queue_nums, queue.write_queue_nums
133 );
134 }
135
136 Ok(())
137}
138
139/// Example 5: Explicit shutdown for logging
140async fn example_explicit_shutdown() -> RocketMQResult<()> {
141 println!("\n=== Example 5: Explicit Shutdown ===");
142
143 let admin = AdminBuilder::new()
144 .namesrv_addr("127.0.0.1:9876")
145 .instance_name("explicit-shutdown-example")
146 .build_with_guard()
147 .await?;
148
149 // Use admin...
150 println!("Admin client started successfully");
151
152 // Explicit shutdown with logging
153 println!("Shutting down admin client...");
154 admin.shutdown().await;
155 println!("Shutdown complete");
156
157 Ok(())
158}
159
160/// Example 6: Dynamic configuration from environment
161async fn example_from_environment() -> RocketMQResult<()> {
162 println!("\n=== Example 6: Environment Configuration ===");
163
164 use std::env;
165
166 // Read from environment with defaults
167 let namesrv_addr = env::var("NAMESRV_ADDR").unwrap_or_else(|_| "127.0.0.1:9876".to_string());
168
169 let instance_name = env::var("INSTANCE_NAME").unwrap_or_else(|_| "env-admin".to_string());
170
171 println!("NameServer: {}", namesrv_addr);
172 println!("Instance: {}", instance_name);
173
174 let _admin = AdminBuilder::new()
175 .namesrv_addr(namesrv_addr)
176 .instance_name(instance_name)
177 .build_with_guard()
178 .await?;
179
180 println!("Admin configured from environment");
181
182 Ok(())
183}Trait Implementations§
Source§impl Clone for AdminBuilder
impl Clone for AdminBuilder
Source§fn clone(&self) -> AdminBuilder
fn clone(&self) -> AdminBuilder
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for AdminBuilder
impl Debug for AdminBuilder
Source§impl Default for AdminBuilder
impl Default for AdminBuilder
Source§fn default() -> AdminBuilder
fn default() -> AdminBuilder
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl Freeze for AdminBuilder
impl RefUnwindSafe for AdminBuilder
impl Send for AdminBuilder
impl Sync for AdminBuilder
impl Unpin for AdminBuilder
impl UnsafeUnpin for AdminBuilder
impl UnwindSafe for AdminBuilder
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> FmtForward for T
impl<T> FmtForward for T
Source§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
Causes
self to use its Binary implementation when Debug-formatted.Source§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
Causes
self to use its Display implementation when
Debug-formatted.Source§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
Causes
self to use its LowerExp implementation when
Debug-formatted.Source§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
Causes
self to use its LowerHex implementation when
Debug-formatted.Source§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
Causes
self to use its Octal implementation when Debug-formatted.Source§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
Causes
self to use its Pointer implementation when
Debug-formatted.Source§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
Causes
self to use its UpperExp implementation when
Debug-formatted.Source§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
Causes
self to use its UpperHex implementation when
Debug-formatted.Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
Source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Pipes by value. This is generally the method you want to use. Read more
Source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
Borrows
self and passes that borrow into the pipe function. Read moreSource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
Mutably borrows
self and passes that borrow into the pipe function. Read moreSource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
Source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
Source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
Borrows
self, then passes self.as_ref() into the pipe function.Source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
Mutably borrows
self, then passes self.as_mut() into the pipe
function.Source§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
Borrows
self, then passes self.deref() into the pipe function.Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> Tap for T
impl<T> Tap for T
Source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Immutable access to the
Borrow<B> of a value. Read moreSource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
Mutable access to the
BorrowMut<B> of a value. Read moreSource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
Immutable access to the
AsRef<R> view of a value. Read moreSource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
Mutable access to the
AsMut<R> view of a value. Read moreSource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Immutable access to the
Deref::Target of a value. Read moreSource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Mutable access to the
Deref::Target of a value. Read moreSource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
Calls
.tap() only in debug builds, and is erased in release builds.Source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
Calls
.tap_mut() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
Calls
.tap_borrow() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
Calls
.tap_borrow_mut() only in debug builds, and is erased in release
builds.Source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
Calls
.tap_ref() only in debug builds, and is erased in release
builds.Source§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
Calls
.tap_ref_mut() only in debug builds, and is erased in release
builds.Source§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
Calls
.tap_deref() only in debug builds, and is erased in release
builds.