Skip to main content

MetricRoutingService

Trait MetricRoutingService 

Source
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§

Source

fn route( &self, request: &MetricRouteRequest, ) -> Result<MetricRouteOutcome, MetricRoutingError>

Evaluates one route request or explicitly refuses unavailable evidence.

Provided Methods§

Source

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.

Source

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.

Source

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.

Source

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.

Source

fn forced_walk( &self, request: &ForcedWalkRequest, ) -> Result<ForcedWalkOutcome, MetricRoutingError>

Brackets the shortest walk to a target that enters an object. The default refuses.

Source

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.

Source

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".

Implementors§