pub struct Client { /* private fields */ }Expand description
Async client for SDaaS API
The Client provides methods for computing text deltas and validating API keys.
It uses async/await patterns with tokio for high-efficiency concurrent operations.
§Example
use sdaas_rs::Client;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = Client::new(
"your-api-key",
"https://saas-core-production.up.railway.app"
);
let delta = client.compute_delta("Hello", "Hello World").await?;
println!("Delta: {:?}", delta.delta);
Ok(())
}Implementations§
Source§impl Client
impl Client
Sourcepub fn new(api_key: impl Into<String>, base_url: impl Into<String>) -> Self
pub fn new(api_key: impl Into<String>, base_url: impl Into<String>) -> Self
Create a new SDaaS client
§Arguments
api_key- Your SDaaS API key (can be obtained from https://saas-core-production.up.railway.app)base_url- Base URL for the SDaaS API (defaults tohttps://saas-core-production.up.railway.app)
§Example
use sdaas_rs::Client;
let client = Client::new(
"your-api-key",
"https://saas-core-production.up.railway.app"
);Sourcepub async fn compute_delta(
&self,
source: &str,
target: &str,
) -> Result<DeltaResponse>
pub async fn compute_delta( &self, source: &str, target: &str, ) -> Result<DeltaResponse>
Compute delta between source and target text
Sends a request to the SDaaS API to compute the delta (diff) between two texts. The response includes delta operations and compression metrics.
§Arguments
source- The original texttarget- The target text to transform source into
§Returns
Returns a DeltaResponse containing:
delta: Vector of insert/delete operationssize_bytes: Compressed delta sizecompression_ratio: Efficiency metric (0.0-1.0)
§Errors
Returns Error::Unauthorized if API key is invalid.
Returns Error::RateLimitExceeded if rate limit is hit.
Returns Error::QuotaExceeded if quota is exhausted.
§Example
use sdaas_rs::Client;
let client = Client::new("your-api-key", "https://saas-core-production.up.railway.app");
let delta = client.compute_delta("Hello", "Hello World").await?;
println!("Operations: {}", delta.delta.len());
println!("Compression: {:.1}%", delta.compression_ratio * 100.0);Sourcepub async fn validate_key(&self) -> Result<ValidationResponse>
pub async fn validate_key(&self) -> Result<ValidationResponse>
Validate API key and get current quota/rate limit info
Checks if the API key is valid and retrieves the current account details.
§Returns
Returns a ValidationResponse containing:
valid: Whether the key is validkey: [KeyValidation] with tier, quota, and rate limit info
§Errors
Returns Error::InvalidApiKey if the API key is invalid.
§Example
use sdaas_rs::Client;
let client = Client::new("your-api-key", "https://saas-core-production.up.railway.app");
let validation = client.validate_key().await?;
println!("Tier: {}", validation.key.tier);
println!("Quota remaining: {}", validation.key.quota_remaining);
println!("Rate limit: {}/sec", validation.key.rate_limit);Sourcepub fn set_api_key(&mut self, api_key: impl Into<String>)
pub fn set_api_key(&mut self, api_key: impl Into<String>)
Set a new API key
Updates the API key used for subsequent requests.
§Example
use sdaas_rs::Client;
let mut client = Client::new("old-key", "https://saas-core-production.up.railway.app");
client.set_api_key("new-key");