From 455cf51ba37c10a57f00ad6310f87aae8d3f2af3 Mon Sep 17 00:00:00 2001 From: 0x676e67 Date: Sat, 25 Jan 2025 10:25:37 +0800 Subject: [PATCH] feat: Expose `ClientMut` as public API (#362) --- src/client/http.rs | 21 ++++++++++++--------- src/client/mod.rs | 2 +- src/lib.rs | 4 +++- 3 files changed, 16 insertions(+), 11 deletions(-) diff --git a/src/client/http.rs b/src/client/http.rs index 2f97a850..7301fa15 100644 --- a/src/client/http.rs +++ b/src/client/http.rs @@ -1647,12 +1647,24 @@ impl_debug!( } ); +/// A mutable reference to a `ClientRef`. +/// +/// This struct provides methods to mutate the state of a `ClientRef`. #[derive(Debug)] pub struct ClientMut<'c> { inner: &'c mut ClientRef, } impl<'c> ClientMut<'c> { + /// Retrieves a mutable reference to the headers for this client. + /// + /// # Returns + /// + /// A mutable reference to the `HeaderMap` containing the headers for this client. + pub fn headers(&mut self) -> &mut HeaderMap { + &mut self.inner.headers + } + /// Sets the base URL for this client. /// /// # Arguments @@ -1669,15 +1681,6 @@ impl<'c> ClientMut<'c> { self } - /// Retrieves a mutable reference to the headers for this client. - /// - /// # Returns - /// - /// A mutable reference to the `HeaderMap` containing the headers for this client. - pub fn headers(&mut self) -> &mut HeaderMap { - &mut self.inner.headers - } - /// Sets the headers order for this client. /// /// # Arguments diff --git a/src/client/mod.rs b/src/client/mod.rs index 3a9382ed..fc6b977b 100644 --- a/src/client/mod.rs +++ b/src/client/mod.rs @@ -1,5 +1,5 @@ pub use self::body::Body; -pub use self::http::{Client, ClientBuilder}; +pub use self::http::{Client, ClientBuilder, ClientMut}; pub use self::request::{Request, RequestBuilder}; pub use self::response::Response; pub use self::upgrade::Upgraded; diff --git a/src/lib.rs b/src/lib.rs index 4e8886d0..0435a6e5 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -387,7 +387,9 @@ pub use self::client::multipart; pub use self::client::websocket::{ CloseCode, Message, WebSocket, WebSocketRequestBuilder, WebSocketResponse, }; -pub use self::client::{Body, Client, ClientBuilder, Request, RequestBuilder, Response, Upgraded}; +pub use self::client::{ + Body, Client, ClientBuilder, ClientMut, Request, RequestBuilder, Response, Upgraded, +}; pub use self::imp::{Impersonate, ImpersonateBuilder, ImpersonateOS, ImpersonateSettings}; pub use self::proxy::{NoProxy, Proxy}; pub use self::tls::{