pub struct GeoLocation {
pub latitude: f64,
pub longitude: f64,
}Expand description
Geographic location with latitude and longitude
Fields§
§latitude: f64Latitude in degrees (-90 to 90)
longitude: f64Longitude in degrees (-180 to 180)
Implementations§
Source§impl GeoLocation
impl GeoLocation
Sourcepub fn distance_to(&self, other: &GeoLocation) -> f64
pub fn distance_to(&self, other: &GeoLocation) -> f64
Calculate great-circle distance to another location in kilometers using the Haversine formula
Sourcepub fn estimate_latency_ms(&self, other: &GeoLocation) -> f64
pub fn estimate_latency_ms(&self, other: &GeoLocation) -> f64
Estimate network latency in milliseconds based on distance
Uses a simple model: base_latency + (distance_km / speed_of_light_factor) Speed of light in fiber is roughly 200,000 km/s, giving ~5ms per 1000km
Trait Implementations§
Source§impl Clone for GeoLocation
impl Clone for GeoLocation
Source§fn clone(&self) -> GeoLocation
fn clone(&self) -> GeoLocation
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for GeoLocation
impl Debug for GeoLocation
Source§impl<'de> Deserialize<'de> for GeoLocation
impl<'de> Deserialize<'de> for GeoLocation
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 PartialEq for GeoLocation
impl PartialEq for GeoLocation
Source§impl Serialize for GeoLocation
impl Serialize for GeoLocation
impl Copy for GeoLocation
impl StructuralPartialEq for GeoLocation
Auto Trait Implementations§
impl Freeze for GeoLocation
impl RefUnwindSafe for GeoLocation
impl Send for GeoLocation
impl Sync for GeoLocation
impl Unpin for GeoLocation
impl UnwindSafe for GeoLocation
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§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