Client

Struct Client 

Source
pub struct Client { /* private fields */ }
Expand description

Client for ip-allocator-webserver

Version: 0.1.0

Implementations§

Source§

impl Client

Source

pub fn new(baseurl: &str) -> Self

Create a new client.

baseurl is the base URL provided to the internal reqwest::Client, and should include a scheme and hostname, as well as port and a path stem if applicable.

Examples found in repository?
examples/basic.rs (line 6)
4async fn main() -> Result<(), Box<dyn std::error::Error>> {
5    // Create a new client
6    let client = Client::new("http://localhost:8000");
7
8    // Borrow an item from the freelist
9    println!("🔄 Borrowing an item...");
10    let borrow_result = client.handlers_ip_borrow().await?;
11    println!("✅ Borrowed item: {:?}", borrow_result);
12
13    // Return an item to the freelist
14    println!("\n🔄 Returning an item...");
15    let return_input = ip_allocator_client::types::ReturnInput {
16        item: serde_json::json!({"ip": "192.168.1.100"}),
17    };
18    let return_result = client.handlers_ip_return_item(&return_input).await?;
19    println!("✅ Return operation initiated: {:?}", return_result);
20
21    // Check operation status
22    println!("\n🔄 Checking operation status...");
23    let status = client
24        .handlers_ip_get_operation_status(&return_result.operation_id)
25        .await?;
26    println!("✅ Operation status: {:?}", status);
27
28    Ok(())
29}
Source

pub fn new_with_client(baseurl: &str, client: Client) -> Self

Construct a new client with an existing reqwest::Client, allowing more control over its configuration.

baseurl is the base URL provided to the internal reqwest::Client, and should include a scheme and hostname, as well as port and a path stem if applicable.

Source

pub fn baseurl(&self) -> &String

Get the base URL to which requests are made.

Source

pub fn client(&self) -> &Client

Get the internal reqwest::Client used to make requests.

Source

pub fn api_version(&self) -> &'static str

Get the version of this API.

This string is pulled directly from the source OpenAPI document and may be in any format the API selects.

Source§

impl Client

Source

pub async fn handlers_ip_borrow<'a>( &'a self, ) -> Result<ResponseValue<BorrowOutput>, Error<()>>

Borrow an item from the freelist

Sends a GET request to /borrow

Examples found in repository?
examples/basic.rs (line 10)
4async fn main() -> Result<(), Box<dyn std::error::Error>> {
5    // Create a new client
6    let client = Client::new("http://localhost:8000");
7
8    // Borrow an item from the freelist
9    println!("🔄 Borrowing an item...");
10    let borrow_result = client.handlers_ip_borrow().await?;
11    println!("✅ Borrowed item: {:?}", borrow_result);
12
13    // Return an item to the freelist
14    println!("\n🔄 Returning an item...");
15    let return_input = ip_allocator_client::types::ReturnInput {
16        item: serde_json::json!({"ip": "192.168.1.100"}),
17    };
18    let return_result = client.handlers_ip_return_item(&return_input).await?;
19    println!("✅ Return operation initiated: {:?}", return_result);
20
21    // Check operation status
22    println!("\n🔄 Checking operation status...");
23    let status = client
24        .handlers_ip_get_operation_status(&return_result.operation_id)
25        .await?;
26    println!("✅ Operation status: {:?}", status);
27
28    Ok(())
29}
Source

pub async fn handlers_ip_return_item<'a>( &'a self, body: &'a ReturnInput, ) -> Result<ResponseValue<OperationRef>, Error<()>>

Return an item to the freelist

Sends a POST request to /return

Examples found in repository?
examples/basic.rs (line 18)
4async fn main() -> Result<(), Box<dyn std::error::Error>> {
5    // Create a new client
6    let client = Client::new("http://localhost:8000");
7
8    // Borrow an item from the freelist
9    println!("🔄 Borrowing an item...");
10    let borrow_result = client.handlers_ip_borrow().await?;
11    println!("✅ Borrowed item: {:?}", borrow_result);
12
13    // Return an item to the freelist
14    println!("\n🔄 Returning an item...");
15    let return_input = ip_allocator_client::types::ReturnInput {
16        item: serde_json::json!({"ip": "192.168.1.100"}),
17    };
18    let return_result = client.handlers_ip_return_item(&return_input).await?;
19    println!("✅ Return operation initiated: {:?}", return_result);
20
21    // Check operation status
22    println!("\n🔄 Checking operation status...");
23    let status = client
24        .handlers_ip_get_operation_status(&return_result.operation_id)
25        .await?;
26    println!("✅ Operation status: {:?}", status);
27
28    Ok(())
29}
Source

pub async fn handlers_ip_get_operation_status<'a>( &'a self, id: &'a str, ) -> Result<ResponseValue<OperationStatusOutput>, Error<()>>

Poll the status of an async operation

Sends a GET request to /operations/{id}

Examples found in repository?
examples/basic.rs (line 24)
4async fn main() -> Result<(), Box<dyn std::error::Error>> {
5    // Create a new client
6    let client = Client::new("http://localhost:8000");
7
8    // Borrow an item from the freelist
9    println!("🔄 Borrowing an item...");
10    let borrow_result = client.handlers_ip_borrow().await?;
11    println!("✅ Borrowed item: {:?}", borrow_result);
12
13    // Return an item to the freelist
14    println!("\n🔄 Returning an item...");
15    let return_input = ip_allocator_client::types::ReturnInput {
16        item: serde_json::json!({"ip": "192.168.1.100"}),
17    };
18    let return_result = client.handlers_ip_return_item(&return_input).await?;
19    println!("✅ Return operation initiated: {:?}", return_result);
20
21    // Check operation status
22    println!("\n🔄 Checking operation status...");
23    let status = client
24        .handlers_ip_get_operation_status(&return_result.operation_id)
25        .await?;
26    println!("✅ Operation status: {:?}", status);
27
28    Ok(())
29}

Trait Implementations§

Source§

impl Clone for Client

Source§

fn clone(&self) -> Client

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Client

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl Freeze for Client

§

impl !RefUnwindSafe for Client

§

impl Send for Client

§

impl Sync for Client

§

impl Unpin for Client

§

impl !UnwindSafe for Client

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more