Struct Client

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

Scheduler client for executing tasks

Implementations§

Source§

impl Client

Source

pub fn new(base_url: impl Into<String>) -> Self

Creates a new scheduler client

§Arguments
  • base_url - The base URL of the scheduler server
§Example
use go_server_rust_sdk::scheduler::Client;
 
let client = Client::new("http://localhost:8080");
Source

pub async fn execute( &self, method: impl Into<String>, params: Value, ) -> Result<ResultResponse>

Executes a task with the given method and parameters

§Arguments
  • method - The method name to execute
  • params - The parameters for the method
§Returns

A ResultResponse containing the task ID and initial status

§Example
use go_server_rust_sdk::scheduler::Client;
use serde_json::json;
 
let client = Client::new("http://localhost:8080");
let params = json!({"a": 10, "b": 20});
let response = client.execute("add", params).await?;
println!("Task ID: {}", response.task_id);
Source

pub async fn execute_encrypted( &self, method: impl Into<String>, key: &str, salt: i32, params: Value, ) -> Result<ResultResponse>

Executes an encrypted task with the given method, key, salt and parameters

§Arguments
  • method - The method name to execute
  • key - The encryption key
  • salt - The salt value for key encryption
  • params - The parameters for the method
§Returns

A ResultResponse containing the task ID and initial status

§Example
use go_server_rust_sdk::scheduler::Client;
use serde_json::json;
 
let client = Client::new("http://localhost:8080");
let params = json!({"a": 10, "b": 20});
let response = client.execute_encrypted("add", "my-secret-key", 123456, params).await?;
println!("Task ID: {}", response.task_id);
Source

pub async fn get_result(&self, task_id: &str) -> Result<ResultResponse>

Retrieves the result of a task by its ID with polling

This method will automatically poll the server until the task is complete or an error occurs.

§Arguments
  • task_id - The ID of the task to retrieve
§Returns

A ResultResponse containing the final task result

§Example
use go_server_rust_sdk::scheduler::Client;
 
let client = Client::new("http://localhost:8080");
let result = client.get_result("task-123").await?;
println!("Result: {:?}", result.result);
Source

pub async fn get_result_encrypted( &self, task_id: &str, key: &str, _salt: i32, ) -> Result<ResultResponse>

Retrieves and decrypts the result of an encrypted task by its ID

This method will automatically poll the server until the task is complete, then decrypt the result using the provided key.

§Arguments
  • task_id - The ID of the task to retrieve
  • key - The decryption key
  • salt - The salt value used for encryption
§Returns

A ResultResponse containing the decrypted task result

§Example
use go_server_rust_sdk::scheduler::Client;
 
let client = Client::new("http://localhost:8080");
let result = client.get_result_encrypted("task-123", "my-secret-key", 123456).await?;
println!("Decrypted result: {:?}", result.result);
Source

pub async fn execute_sync( &self, method: impl Into<String>, params: Value, timeout_duration: Duration, ) -> Result<ResultResponse>

Executes a task synchronously with polling and timeout

This is a convenience method that combines execute and get_result with a timeout.

§Arguments
  • method - The method name to execute
  • params - The parameters for the method
  • timeout_duration - Maximum time to wait for completion
§Returns

A ResultResponse containing the final task result

§Example
use go_server_rust_sdk::scheduler::Client;
use serde_json::json;
use std::time::Duration;
 
let client = Client::new("http://localhost:8080");
let params = json!({"a": 10, "b": 20});
let result = client.execute_sync("add", params, Duration::from_secs(30)).await?;
println!("Result: {:?}", result.result);
Source

pub async fn execute_sync_encrypted( &self, method: impl Into<String>, key: &str, salt: i32, params: Value, timeout_duration: Duration, ) -> Result<ResultResponse>

Executes an encrypted task synchronously with polling, decryption and timeout

This is a convenience method that combines execute_encrypted and get_result_encrypted with a timeout.

§Arguments
  • method - The method name to execute
  • key - The encryption key
  • salt - The salt value for key encryption
  • params - The parameters for the method
  • timeout_duration - Maximum time to wait for completion
§Returns

A ResultResponse containing the decrypted task result

§Example
use go_server_rust_sdk::scheduler::Client;
use serde_json::json;
use std::time::Duration;
 
let client = Client::new("http://localhost:8080");
let params = json!({"a": 10, "b": 20});
let result = client.execute_sync_encrypted(
    "add", 
    "my-secret-key", 
    123456, 
    params, 
    Duration::from_secs(30)
).await?;
println!("Decrypted result: {:?}", result.result);

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

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> Same for T

Source§

type Output = T

Should always be Self
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<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

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
Source§

impl<T> ErasedDestructor for T
where T: 'static,