Skip to main content

RouteOptimization

Struct RouteOptimization 

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

Implements a client for the Route Optimization API.

§Example

async fn sample(
) -> anyhow::Result<()> {
    let client = RouteOptimization::builder().build().await?;
    let response = client.optimize_tours()
        /* set fields */
        .send().await?;
    println!("response {:?}", response);
    Ok(())
}

§Service Description

A service for optimizing vehicle tours.

Validity of certain types of fields:

  • google.protobuf.Timestamp
    • Times are in Unix time: seconds since 1970-01-01T00:00:00+00:00.
    • seconds must be in [0, 253402300799], i.e. in [1970-01-01T00:00:00+00:00, 9999-12-31T23:59:59+00:00].
    • nanos must be unset or set to 0.
  • google.protobuf.Duration
    • seconds must be in [0, 253402300799], i.e. in [1970-01-01T00:00:00+00:00, 9999-12-31T23:59:59+00:00].
    • nanos must be unset or set to 0.
  • google.type.LatLng
    • latitude must be in [-90.0, 90.0].
    • longitude must be in [-180.0, 180.0].
    • at least one of latitude and longitude must be non-zero.

§Configuration

To configure RouteOptimization use the with_* methods in the type returned by builder(). The default configuration should work for most applications. Common configuration changes include

§Pooling and Cloning

RouteOptimization holds a connection pool internally, it is advised to create one and reuse it. You do not need to wrap RouteOptimization in an Rc or Arc to reuse it, because it already uses an Arc internally.

Implementations§

Source§

impl RouteOptimization

Source

pub fn builder() -> ClientBuilder

Returns a builder for RouteOptimization.

let client = RouteOptimization::builder().build().await?;
Source

pub fn from_stub<T>(stub: impl Into<Arc<T>>) -> Self
where T: RouteOptimization + 'static,

Creates a new client from the provided stub.

The most common case for calling this function is in tests mocking the client’s behavior.

Source

pub fn optimize_tours(&self) -> OptimizeTours

Sends an OptimizeToursRequest containing a ShipmentModel and returns an OptimizeToursResponse containing ShipmentRoutes, which are a set of routes to be performed by vehicles minimizing the overall cost.

A ShipmentModel model consists mainly of Shipments that need to be carried out and Vehicles that can be used to transport the Shipments. The ShipmentRoutes assign Shipments to Vehicles. More specifically, they assign a series of Visits to each vehicle, where a Visit corresponds to a VisitRequest, which is a pickup or delivery for a Shipment.

The goal is to provide an assignment of ShipmentRoutes to Vehicles that minimizes the total cost where cost has many components defined in the ShipmentModel.

§Example
use google_maps_routeoptimization_v1::Result;
async fn sample(
   client: &RouteOptimization
) -> Result<()> {
    let response = client.optimize_tours()
        /* set fields */
        .send().await?;
    println!("response {:?}", response);
    Ok(())
}
Source

pub fn batch_optimize_tours(&self) -> BatchOptimizeTours

Optimizes vehicle tours for one or more OptimizeToursRequest messages as a batch.

This method is a Long Running Operation (LRO). The inputs for optimization (OptimizeToursRequest messages) and outputs (OptimizeToursResponse messages) are read from and written to Cloud Storage in user-specified format. Like the OptimizeTours method, each OptimizeToursRequest contains a ShipmentModel and returns an OptimizeToursResponse containing ShipmentRoute fields, which are a set of routes to be performed by vehicles minimizing the overall cost.

The user can poll operations.get to check the status of the LRO:

If the LRO done field is false, then at least one request is still being processed. Other requests may have completed successfully and their results are available in Cloud Storage.

If the LRO’s done field is true, then all requests have been processed. Any successfully processed requests will have their results available in Cloud Storage. Any requests that failed will not have their results available in Cloud Storage. If the LRO’s error field is set, then it contains the error from one of the failed requests.

§Long running operations

This method is used to start, and/or poll a long-running Operation. The Working with long-running operations chapter in the user guide covers these operations in detail.

§Example
use google_cloud_lro::Poller;
use google_maps_routeoptimization_v1::Result;
async fn sample(
   client: &RouteOptimization
) -> Result<()> {
    let response = client.batch_optimize_tours()
        /* set fields */
        .poller().until_done().await?;
    println!("response {:?}", response);
    Ok(())
}
Source

pub fn optimize_tours_long_running(&self) -> OptimizeToursLongRunning

This is a variant of the OptimizeTours method designed for optimizations with large timeout values. It should be preferred over the OptimizeTours method for optimizations that take longer than a few minutes.

The returned long-running operation (LRO) will have a name of the format <parent>/operations/<operation_id> and can be used to track progress of the computation. The metadata field type is OptimizeToursLongRunningMetadata. The response field type is OptimizeToursResponse, if successful.

Experimental: See https://developers.google.com/maps/tt/route-optimization/experimental/otlr/make-request for more details.

§Long running operations

This method is used to start, and/or poll a long-running Operation. The Working with long-running operations chapter in the user guide covers these operations in detail.

§Example
use google_cloud_lro::Poller;
use google_maps_routeoptimization_v1::Result;
async fn sample(
   client: &RouteOptimization
) -> Result<()> {
    let response = client.optimize_tours_long_running()
        /* set fields */
        .poller().until_done().await?;
    println!("response {:?}", response);
    Ok(())
}
Source

pub fn optimize_tours_uri(&self) -> OptimizeToursUri

This is a variant of the OptimizeToursLongRunning method designed for optimizations with large timeout values and large input/output sizes.

The client specifies the URI of the OptimizeToursRequest stored in Google Cloud Storage and the server writes the OptimizeToursResponse to a client-specified Google Cloud Storage URI.

This method should be preferred over the OptimizeTours method for optimizations that take longer than a few minutes and input/output sizes that are larger than 8MB, though it can be used for shorter and smaller optimizations as well.

The returned long-running operation (LRO) will have a name of the format <parent>/operations/<operation_id> and can be used to track progress of the computation. The metadata field type is OptimizeToursLongRunningMetadata. The response field type is OptimizeToursUriResponse, if successful.

Experimental: See https://developers.google.com/maps/tt/route-optimization/experimental/otlr/make-request for more details.

§Long running operations

This method is used to start, and/or poll a long-running Operation. The Working with long-running operations chapter in the user guide covers these operations in detail.

§Example
use google_cloud_lro::Poller;
use google_maps_routeoptimization_v1::Result;
async fn sample(
   client: &RouteOptimization
) -> Result<()> {
    let response = client.optimize_tours_uri()
        /* set fields */
        .poller().until_done().await?;
    println!("response {:?}", response);
    Ok(())
}
Source

pub fn get_operation(&self) -> GetOperation

Provides the Operations service functionality in this service.

§Example
use google_maps_routeoptimization_v1::Result;
async fn sample(
   client: &RouteOptimization
) -> Result<()> {
    let response = client.get_operation()
        /* set fields */
        .send().await?;
    println!("response {:?}", response);
    Ok(())
}

Trait Implementations§

Source§

impl Clone for RouteOptimization

Source§

fn clone(&self) -> RouteOptimization

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for RouteOptimization

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FutureExt for T

Source§

fn with_context(self, otel_cx: Context) -> WithContext<Self>

Attaches the provided Context to this type, returning a WithContext wrapper. Read more
Source§

fn with_current_context(self) -> WithContext<Self>

Attaches the current Context to this type, returning a WithContext wrapper. Read more
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> IntoRequest<T> for T

Source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
Source§

impl<L> LayerExt<L> for L

Source§

fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>
where L: Layer<S>,

Applies the layer to a service and wraps it in Layered.
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> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. 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, <T as TryFrom<U>>::Error>

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<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

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