pub trait MetricRoutingService:
Send
+ Sync
+ 'static {
// Required method
fn route(
&self,
request: &MetricRouteRequest,
) -> Result<MetricRouteOutcome, MetricRoutingError>;
// Provided methods
fn nearest_target(
&self,
request: &NearestTargetRequest,
) -> Result<NearestTargetOutcome, MetricRoutingError> { ... }
fn farthest_point(
&self,
request: &FarthestPointRequest,
) -> Result<FarthestPointOutcome, MetricRoutingError> { ... }
fn avoids_objects(&self) -> bool { ... }
fn weighs_travel(&self) -> bool { ... }
fn forced_walk(
&self,
request: &ForcedWalkRequest,
) -> Result<ForcedWalkOutcome, MetricRoutingError> { ... }
fn climbs_connectors(&self) -> bool { ... }
fn trace_path(
&self,
request: &PathTraceRequest,
) -> Result<PathTrace, MetricRoutingError> { ... }
}Expand description
Backend-neutral metric routing interface implemented by trusted host code.
Required Methods§
Sourcefn route(
&self,
request: &MetricRouteRequest,
) -> Result<MetricRouteOutcome, MetricRoutingError>
fn route( &self, request: &MetricRouteRequest, ) -> Result<MetricRouteOutcome, MetricRoutingError>
Evaluates one route request or explicitly refuses unavailable evidence.
Provided Methods§
Sourcefn nearest_target(
&self,
request: &NearestTargetRequest,
) -> Result<NearestTargetOutcome, MetricRoutingError>
fn nearest_target( &self, request: &NearestTargetRequest, ) -> Result<NearestTargetOutcome, MetricRoutingError>
Bounds the distance from the origin to the nearest target. The default refuses: a backend that cannot search many targets at once must not answer with a single pair.
Sourcefn farthest_point(
&self,
request: &FarthestPointRequest,
) -> Result<FarthestPointOutcome, MetricRoutingError>
fn farthest_point( &self, request: &FarthestPointRequest, ) -> Result<FarthestPointOutcome, MetricRoutingError>
Brackets the largest distance from any point of the region to the nearest target. The default refuses rather than sampling points.
Sourcefn avoids_objects(&self) -> bool
fn avoids_objects(&self) -> bool
Whether Self::nearest_target honours
NearestTargetRequest::avoided. The default is false, and the
handle then refuses a request avoiding anything rather than let the
backend answer the plain walk.
Sourcefn weighs_travel(&self) -> bool
fn weighs_travel(&self) -> bool
Whether Self::nearest_target and Self::farthest_point honour
a request’s TravelCosts. The default is false, and the handle
then refuses a weighted request rather than let the backend answer
the plain length.
Sourcefn forced_walk(
&self,
request: &ForcedWalkRequest,
) -> Result<ForcedWalkOutcome, MetricRoutingError>
fn forced_walk( &self, request: &ForcedWalkRequest, ) -> Result<ForcedWalkOutcome, MetricRoutingError>
Brackets the shortest walk to a target that enters an object. The default refuses.
Sourcefn climbs_connectors(&self) -> bool
fn climbs_connectors(&self) -> bool
Whether the queries honour a request’s ConnectorRouting. The
default is false, and the handle then refuses a request carrying
connectors rather than let the backend answer a walk on one level.
Sourcefn trace_path(
&self,
request: &PathTraceRequest,
) -> Result<PathTrace, MetricRoutingError>
fn trace_path( &self, request: &PathTraceRequest, ) -> Result<PathTrace, MetricRoutingError>
Measures how much of a polyline lies over each requested object. The default refuses.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".