pub struct HttpIdpClient { /* private fields */ }Expand description
Production HTTP client for IDP operations.
Implementations§
Source§impl HttpIdpClient
impl HttpIdpClient
Sourcepub fn new(
base_url: String,
timeout_seconds: u64,
retry_policy: RetryPolicy,
) -> Result<Self, HttpError>
pub fn new( base_url: String, timeout_seconds: u64, retry_policy: RetryPolicy, ) -> Result<Self, HttpError>
Create a new IDP client with a simple timeout.
This is a convenience constructor that creates a client with default
network configuration except for the request timeout. For full control
over proxy and timeout settings, use
HttpIdpClient::with_network_config.
§Arguments
base_url- IDP base URL (e.g.,https://human.lastid.co)timeout_seconds- HTTP request timeoutretry_policy- Retry configuration
§Errors
Returns HttpError::Network if HTTP client creation fails.
Sourcepub fn with_network_config(
base_url: String,
network_config: &NetworkConfig,
retry_policy: RetryPolicy,
) -> Result<Self, HttpError>
pub fn with_network_config( base_url: String, network_config: &NetworkConfig, retry_policy: RetryPolicy, ) -> Result<Self, HttpError>
Create a new IDP client with full network configuration.
This constructor provides full control over HTTP client settings including:
- Proxy configuration (HTTP/HTTPS proxies,
no_proxyexclusions) - Granular timeout settings (connect, read, request)
- Connection pool tuning
- Correlation ID settings
§Arguments
base_url- IDP base URL (e.g.,https://human.lastid.co)network_config- Full network configurationretry_policy- Retry configuration
§Errors
Returns HttpError::Network if HTTP client creation fails (e.g.,
invalid proxy URL).
§Example
use lastid_sdk::{HttpIdpClient, NetworkConfig, RetryPolicy};
let network_config = NetworkConfig {
proxy_url: Some("http://proxy.corp.example.com:8080".to_string()),
connect_timeout_seconds: 5,
read_timeout_seconds: 30,
request_timeout_seconds: 60,
..Default::default()
};
let client = HttpIdpClient::with_network_config(
"https://human.lastid.co".to_string(),
&network_config,
RetryPolicy::default(),
)?;Trait Implementations§
Source§impl Clone for HttpIdpClient
impl Clone for HttpIdpClient
Source§impl IdpClient for HttpIdpClient
impl IdpClient for HttpIdpClient
Source§fn request_credential<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
policy: CredentialPolicyRequest,
bearer_token: &'life1 str,
dpop_proof: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<CredentialRequestResponse, HttpError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn request_credential<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
policy: CredentialPolicyRequest,
bearer_token: &'life1 str,
dpop_proof: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<CredentialRequestResponse, HttpError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Request a credential presentation from the IDP. Read more
Source§fn poll_status<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
request_id: &'life1 RequestId,
client_id: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<RequestStatus, HttpError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn poll_status<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
request_id: &'life1 RequestId,
client_id: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<RequestStatus, HttpError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Poll for credential request status. Read more
Source§fn get_presentation<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
request_id: &'life1 RequestId,
client_id: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<VerifiablePresentation, HttpError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn get_presentation<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
request_id: &'life1 RequestId,
client_id: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<VerifiablePresentation, HttpError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Retrieve the presentation for a fulfilled request. Read more
Auto Trait Implementations§
impl Freeze for HttpIdpClient
impl !RefUnwindSafe for HttpIdpClient
impl Send for HttpIdpClient
impl Sync for HttpIdpClient
impl Unpin for HttpIdpClient
impl UnsafeUnpin for HttpIdpClient
impl !UnwindSafe for HttpIdpClient
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