Struct DestinationProfile

Source
pub struct DestinationProfile {
    pub fully_qualified_name: String,
    pub opaque_protocol: bool,
    pub routes: Vec<Route>,
    pub retry_budget: Option<RetryBudget>,
    pub dst_overrides: Vec<WeightedDst>,
    pub endpoint: Option<WeightedAddr>,
    pub parent_ref: Option<Metadata>,
    pub profile_ref: Option<Metadata>,
}

Fields§

§fully_qualified_name: String

The fully-qualified service name, if one exists.

When resolving (especially by IP), this field provides the fully-qualified name of the resolved service, if one exists. This field does NOT include any port information. E.g. a lookup for 10.2.3.4:8080 might have a name like foo.bar.svc.cluster.local.

Implementations MAY provide names for non-service IP-lookups (e.g., pod or node dns names), but this is not required.

If the lookup does not refer to a known named entity, this field MUST be left empty.

§opaque_protocol: bool

Indicates that connections on this service address should be handled as opaque TCP streams. HTTP routes returned on for such services will be ignored.

§routes: Vec<Route>

A list of routes, each with a RequestMatch. If a request matches more than one route, the first match wins.

§retry_budget: Option<RetryBudget>

The retry budget controls how much additional load the proxy can generate as retries. Failured requests on retryable routes will not be retried if there is no available budget.

§dst_overrides: Vec<WeightedDst>

If this list is non-empty, requests to this destination should instead be split between the destinations in this list. Each destination should receive a portion of the requests proportional to its weight. If this list is empty, requests should be sent to this destination as normal.

§endpoint: Option<WeightedAddr>

If this field is set, it indicates that the target is a known endpoint (and not a service address). The values of fully_qualified_name and dst_overrides will be ignored for the purposes of service discovery– traffic split and load balancing will be skipped and the single endpoint are used.

No endpoint should be set If the target is unknown.

§parent_ref: Option<Metadata>

A reference to the metadata for this destination, usually a service. May be omitted if the destination is not a service.

§profile_ref: Option<Metadata>

A reference to the metadata for a ServiceProfile resource. This is omitted when no ServiceProfile resource exists.

Trait Implementations§

Source§

impl Clone for DestinationProfile

Source§

fn clone(&self) -> DestinationProfile

Returns a copy 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 DestinationProfile

Source§

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

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

impl Default for DestinationProfile

Source§

fn default() -> Self

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

impl Message for DestinationProfile

Source§

fn encoded_len(&self) -> usize

Returns the encoded length of the message without a length delimiter.
Source§

fn clear(&mut self)

Clears the message, resetting all fields to their default.
Source§

fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>
where Self: Sized,

Encodes the message to a buffer. Read more
Source§

fn encode_to_vec(&self) -> Vec<u8>
where Self: Sized,

Encodes the message to a newly allocated buffer.
Source§

fn encode_length_delimited( &self, buf: &mut impl BufMut, ) -> Result<(), EncodeError>
where Self: Sized,

Encodes the message with a length-delimiter to a buffer. Read more
Source§

fn encode_length_delimited_to_vec(&self) -> Vec<u8>
where Self: Sized,

Encodes the message with a length-delimiter to a newly allocated buffer.
Source§

fn decode(buf: impl Buf) -> Result<Self, DecodeError>
where Self: Default,

Decodes an instance of the message from a buffer. Read more
Source§

fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>
where Self: Default,

Decodes a length-delimited instance of the message from the buffer.
Source§

fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>
where Self: Sized,

Decodes an instance of the message from a buffer, and merges it into self. Read more
Source§

fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>
where Self: Sized,

Decodes a length-delimited instance of the message from buffer, and merges it into self.
Source§

impl PartialEq for DestinationProfile

Source§

fn eq(&self, other: &DestinationProfile) -> 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 DestinationProfile

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<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> IntoRequest<T> for T

Source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
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<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