Reason

#[non_exhaustive]
pub struct Reason { pub code: Code, pub example_vehicle_index: Option<i32>, pub example_exceeded_capacity_type: String, /* private fields */ }
Expand description

If we can explain why the shipment was skipped, reasons will be listed here. If the reason is not the same for all vehicles, reason will have more than 1 element. A skipped shipment cannot have duplicate reasons, i.e. where all fields are the same except for example_vehicle_index. Example:

reasons {
  code: DEMAND_EXCEEDS_VEHICLE_CAPACITY
  example_vehicle_index: 1
  example_exceeded_capacity_type: "Apples"
}
reasons {
  code: DEMAND_EXCEEDS_VEHICLE_CAPACITY
  example_vehicle_index: 3
  example_exceeded_capacity_type: "Pears"
}
reasons {
  code: CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DISTANCE_LIMIT
  example_vehicle_index: 1
}

The skipped shipment is incompatible with all vehicles. The reasons may be different for all vehicles but at least one vehicle’s “Apples” capacity would be exceeded (including vehicle 1), at least one vehicle’s “Pears” capacity would be exceeded (including vehicle 3) and at least one vehicle’s distance limit would be exceeded (including vehicle 1).

Fields (Non-exhaustive)§

This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.
§code: Code

Refer to the comments of Code.

§example_vehicle_index: Option<i32>

If the reason is related to a shipment-vehicle incompatibility, this field provides the index of one relevant vehicle.

§example_exceeded_capacity_type: String

If the reason code is DEMAND_EXCEEDS_VEHICLE_CAPACITY, documents one capacity type that is exceeded.

Implementations§

Source§

impl Reason

Source

pub fn new() -> Self

Source

pub fn set_code<T: Into<Code>>(self, v: T) -> Self

Sets the value of code.

§Example
use google_cloud_optimization_v1::model::skipped_shipment::reason::Code;
let x0 = Reason::new().set_code(Code::NoVehicle);
let x1 = Reason::new().set_code(Code::DemandExceedsVehicleCapacity);
let x2 = Reason::new().set_code(Code::CannotBePerformedWithinVehicleDistanceLimit);
Source

pub fn set_example_vehicle_index<T>(self, v: T) -> Self
where T: Into<i32>,

Sets the value of example_vehicle_index.

§Example
let x = Reason::new().set_example_vehicle_index(42);
Source

pub fn set_or_clear_example_vehicle_index<T>(self, v: Option<T>) -> Self
where T: Into<i32>,

Sets or clears the value of example_vehicle_index.

§Example
let x = Reason::new().set_or_clear_example_vehicle_index(Some(42));
let x = Reason::new().set_or_clear_example_vehicle_index(None::<i32>);
Source

pub fn set_example_exceeded_capacity_type<T: Into<String>>(self, v: T) -> Self

Sets the value of example_exceeded_capacity_type.

§Example
let x = Reason::new().set_example_exceeded_capacity_type("example");

Trait Implementations§

Source§

impl Clone for Reason

Source§

fn clone(&self) -> Reason

Returns a duplicate of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for Reason

Source§

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

Formats the value using the given formatter. Read more
Source§

impl Default for Reason

Source§

fn default() -> Reason

Returns the “default value” for a type. Read more
Source§

impl Message for Reason

Source§

fn typename() -> &'static str

The typename of this message.
Source§

impl PartialEq for Reason

Source§

fn eq(&self, other: &Reason) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl StructuralPartialEq for Reason

Auto Trait Implementations§

§

impl Freeze for Reason

§

impl RefUnwindSafe for Reason

§

impl Send for Reason

§

impl Sync for Reason

§

impl Unpin for Reason

§

impl UnwindSafe for Reason

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<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> 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> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: 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: 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> 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 = Infallible

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

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,