Skip to main content

ProviderClient

Struct ProviderClient 

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

A generic provider HTTP client that consolidates the common request/response logic shared across all provider implementations (HERE, Google, TomTom, MapBox, Radar).

Each provider crate should use this instead of maintaining its own duplicated client. The only configuration specific to each provider is the provider_name (used in error messages) and the auth mechanism (injected via AuthProvider).

Implementations§

Source§

impl ProviderClient

Source

pub fn new( auth_provider: Arc<dyn AuthProvider>, provider_name: &'static str, ) -> Self

Creates a new ProviderClient with the given authentication provider.

Source

pub fn with_client_builder( builder: ClientBuilder, auth_provider: Arc<dyn AuthProvider>, provider_name: &'static str, ) -> EveryMapResult<Self>

Creates a ProviderClient with a custom reqwest::Client configuration.

Source

pub fn set_verbose(&mut self, verbose: bool)

Enable or disable verbose output (request/response logging to stderr).

Source

pub fn is_verbose(&self) -> bool

Whether verbose mode is enabled.

Source

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

The provider name (e.g., “here”, “google”, “tomtom”, “mapbox”, “radar”).

Source

pub fn build_request(&self, method: Method, url: &str) -> RequestBuilder

Builds a request to the given full URL with the specified HTTP method.

Source

pub async fn request(&self, builder: RequestBuilder) -> EveryMapResult<Response>

Sends a request, applying authentication first.

Returns an EveryMapError::HttpError for non-2xx status codes, and EveryMapError::RateLimited for 429 responses.

Source

pub async fn request_json<T: DeserializeOwned>( &self, builder: RequestBuilder, ) -> EveryMapResult<T>

Sends a request and deserializes the JSON response into T.

Reads the response body as text first, then deserializes with serde_json::from_str. If deserialization fails, the error includes a truncated excerpt of the raw response body for debugging.

Source

pub async fn post_json<T: DeserializeOwned>( &self, url: &str, body: &Value, ) -> EveryMapResult<T>

Sends a POST request with a JSON body and deserializes the response.

Auto Trait Implementations§

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> 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: Sized + 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: Sized + 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, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

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