pub struct Geolocator { /* private fields */ }Implementations§
Source§impl Geolocator
impl Geolocator
pub fn name(&self) -> Cow<'static, str>
pub fn rate_limit_interval(&self) -> Duration
Sourcepub async fn find_ip_location(
&self,
client: &Client,
interval: Duration,
) -> Result<IPAddressInfo>
pub async fn find_ip_location( &self, client: &Client, interval: Duration, ) -> Result<IPAddressInfo>
No-op if last API call was made in the last interval seconds.
Transient errors are retried with exponential backoff, so callers
don’t need their own retry logic. If the service reported rate
limiting less than rate_limit_interval seconds ago, no request is
made and an error with a RateLimited cause is returned, so that
all callers collectively respect the limit.
Trait Implementations§
Source§impl Debug for Geolocator
impl Debug for Geolocator
Source§impl Default for Geolocator
impl Default for Geolocator
Source§impl<'de> Deserialize<'de> for Geolocator
impl<'de> Deserialize<'de> for Geolocator
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl From<GeolocatorConfig> for Geolocator
impl From<GeolocatorConfig> for Geolocator
Source§fn from(config: GeolocatorConfig) -> Self
fn from(config: GeolocatorConfig) -> Self
Converts to this type from the input type.
Auto Trait Implementations§
impl !Freeze for Geolocator
impl RefUnwindSafe for Geolocator
impl Send for Geolocator
impl Sync for Geolocator
impl Unpin for Geolocator
impl UnsafeUnpin for Geolocator
impl UnwindSafe for Geolocator
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
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> NoneValue for Twhere
T: Default,
impl<T> NoneValue for Twhere
T: Default,
type NoneType = T
§fn null_value() -> T
fn null_value() -> T
The none-equivalent value.