pub struct Endpoint { /* private fields */ }
Expand description
Channel builder.
This struct is used to build and configure HTTP/2 channels.
Implementations
sourceimpl Endpoint
impl Endpoint
sourcepub fn from_static(s: &'static str) -> Self
pub fn from_static(s: &'static str) -> Self
Convert an Endpoint
from a static string.
Panics
This function panics if the argument is an invalid URI.
Endpoint::from_static("https://example.com");
Convert an Endpoint
from shared bytes.
Endpoint::from_shared("https://example.com".to_string());
sourcepub fn user_agent<T>(self, user_agent: T) -> Result<Self, Error>where
T: TryInto<HeaderValue>,
pub fn user_agent<T>(self, user_agent: T) -> Result<Self, Error>where
T: TryInto<HeaderValue>,
Set a custom user-agent header.
user_agent
will be prepended to Tonic’s default user-agent string (tonic/x.x.x
).
It must be a value that can be converted into a valid http::HeaderValue
or building
the endpoint will fail.
builder.user_agent("Greeter").expect("Greeter should be a valid header value");
// user-agent: "Greeter tonic/x.x.x"
sourcepub fn timeout(self, dur: Duration) -> Self
pub fn timeout(self, dur: Duration) -> Self
Apply a timeout to each request.
builder.timeout(Duration::from_secs(5));
Notes
This does not set the timeout metadata (grpc-timeout
header) on
the request, meaning the server will not be informed of this timeout,
for that use Request::set_timeout
.
sourcepub fn connect_timeout(self, dur: Duration) -> Self
pub fn connect_timeout(self, dur: Duration) -> Self
Apply a timeout to connecting to the uri.
Defaults to no timeout.
builder.connect_timeout(Duration::from_secs(5));
sourcepub fn tcp_keepalive(self, tcp_keepalive: Option<Duration>) -> Self
pub fn tcp_keepalive(self, tcp_keepalive: Option<Duration>) -> Self
Set whether TCP keepalive messages are enabled on accepted connections.
If None
is specified, keepalive is disabled, otherwise the duration
specified will be the time to remain idle before sending TCP keepalive
probes.
Default is no keepalive (None
)
sourcepub fn concurrency_limit(self, limit: usize) -> Self
pub fn concurrency_limit(self, limit: usize) -> Self
Apply a concurrency limit to each request.
builder.concurrency_limit(256);
sourcepub fn rate_limit(self, limit: u64, duration: Duration) -> Self
pub fn rate_limit(self, limit: u64, duration: Duration) -> Self
Apply a rate limit to each request.
builder.rate_limit(32, Duration::from_secs(1));
sourcepub fn initial_stream_window_size(self, sz: impl Into<Option<u32>>) -> Self
pub fn initial_stream_window_size(self, sz: impl Into<Option<u32>>) -> Self
Sets the SETTINGS_INITIAL_WINDOW_SIZE
option for HTTP2
stream-level flow control.
Default is 65,535
sourcepub fn initial_connection_window_size(self, sz: impl Into<Option<u32>>) -> Self
pub fn initial_connection_window_size(self, sz: impl Into<Option<u32>>) -> Self
Sets the max connection-level flow control for HTTP2
Default is 65,535
sourcepub fn tls_config(self, tls_config: ClientTlsConfig) -> Result<Self, Error>
pub fn tls_config(self, tls_config: ClientTlsConfig) -> Result<Self, Error>
Configures TLS for the endpoint.
sourcepub fn tcp_nodelay(self, enabled: bool) -> Self
pub fn tcp_nodelay(self, enabled: bool) -> Self
Set the value of TCP_NODELAY
option for accepted connections. Enabled by default.
sourcepub fn http2_keep_alive_interval(self, interval: Duration) -> Self
pub fn http2_keep_alive_interval(self, interval: Duration) -> Self
Set http2 KEEP_ALIVE_INTERVAL. Uses hyper
’s default otherwise.
sourcepub fn keep_alive_timeout(self, duration: Duration) -> Self
pub fn keep_alive_timeout(self, duration: Duration) -> Self
Set http2 KEEP_ALIVE_TIMEOUT. Uses hyper
’s default otherwise.
sourcepub fn keep_alive_while_idle(self, enabled: bool) -> Self
pub fn keep_alive_while_idle(self, enabled: bool) -> Self
Set http2 KEEP_ALIVE_WHILE_IDLE. Uses hyper
’s default otherwise.
sourcepub fn http2_adaptive_window(self, enabled: bool) -> Self
pub fn http2_adaptive_window(self, enabled: bool) -> Self
Sets whether to use an adaptive flow control. Uses hyper
’s default otherwise.
sourcepub fn connect_lazy(&self) -> Channel
pub fn connect_lazy(&self) -> Channel
Create a channel from this config.
The channel returned by this method does not attempt to connect to the endpoint until first use.
sourcepub async fn connect_with_connector<C>(
&self,
connector: C
) -> Result<Channel, Error>where
C: MakeConnection<Uri> + Send + 'static,
C::Connection: Unpin + Send + 'static,
C::Future: Send + 'static,
Box<dyn Error + Send + Sync>: From<C::Error> + Send + 'static,
pub async fn connect_with_connector<C>(
&self,
connector: C
) -> Result<Channel, Error>where
C: MakeConnection<Uri> + Send + 'static,
C::Connection: Unpin + Send + 'static,
C::Future: Send + 'static,
Box<dyn Error + Send + Sync>: From<C::Error> + Send + 'static,
Connect with a custom connector.
This allows you to build a Channel that uses a non-HTTP transport.
See the uds
example for an example on how to use this function to build channel that
uses a Unix socket transport.
The connect_timeout
will still be applied.
sourcepub fn connect_with_connector_lazy<C>(
&self,
connector: C
) -> Result<Channel, Error>where
C: MakeConnection<Uri> + Send + 'static,
C::Connection: Unpin + Send + 'static,
C::Future: Send + 'static,
Box<dyn Error + Send + Sync>: From<C::Error> + Send + 'static,
pub fn connect_with_connector_lazy<C>(
&self,
connector: C
) -> Result<Channel, Error>where
C: MakeConnection<Uri> + Send + 'static,
C::Connection: Unpin + Send + 'static,
C::Future: Send + 'static,
Box<dyn Error + Send + Sync>: From<C::Error> + Send + 'static,
Connect with a custom connector lazily.
This allows you to build a Channel that uses a non-HTTP transport connec to it lazily.
See the uds
example for an example on how to use this function to build channel that
uses a Unix socket transport.
Trait Implementations
sourceimpl FromStr for Endpoint
impl FromStr for Endpoint
type Err = InvalidUri
type Err = InvalidUri
sourceimpl TryFrom<&'static str> for Endpoint
impl TryFrom<&'static str> for Endpoint
type Error = InvalidUri
type Error = InvalidUri
sourceimpl TryFrom<Bytes> for Endpoint
impl TryFrom<Bytes> for Endpoint
type Error = InvalidUri
type Error = InvalidUri
Auto Trait Implementations
impl !RefUnwindSafe for Endpoint
impl Send for Endpoint
impl Sync for Endpoint
impl Unpin for Endpoint
impl !UnwindSafe for Endpoint
Blanket Implementations
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstablefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>ⓘNotable traits for Instrumented<T>impl<T> Future for Instrumented<T>where
T: Future, type Output = <T as Future>::Output;
fn instrument(self, span: Span) -> Instrumented<Self>ⓘNotable traits for Instrumented<T>impl<T> Future for Instrumented<T>where
T: Future, type Output = <T as Future>::Output;
T: Future, type Output = <T as Future>::Output;
sourcefn in_current_span(self) -> Instrumented<Self>ⓘNotable traits for Instrumented<T>impl<T> Future for Instrumented<T>where
T: Future, type Output = <T as Future>::Output;
fn in_current_span(self) -> Instrumented<Self>ⓘNotable traits for Instrumented<T>impl<T> Future for Instrumented<T>where
T: Future, type Output = <T as Future>::Output;
T: Future, type Output = <T as Future>::Output;
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>ⓘNotable traits for Instrumented<T>impl<T> Future for Instrumented<T>where
T: Future, type Output = <T as Future>::Output;
fn instrument(self, span: Span) -> Instrumented<Self>ⓘNotable traits for Instrumented<T>impl<T> Future for Instrumented<T>where
T: Future, type Output = <T as Future>::Output;
T: Future, type Output = <T as Future>::Output;
sourcefn in_current_span(self) -> Instrumented<Self>ⓘNotable traits for Instrumented<T>impl<T> Future for Instrumented<T>where
T: Future, type Output = <T as Future>::Output;
fn in_current_span(self) -> Instrumented<Self>ⓘNotable traits for Instrumented<T>impl<T> Future for Instrumented<T>where
T: Future, type Output = <T as Future>::Output;
T: Future, type Output = <T as Future>::Output;
impl<T> ToOwned for Twhere
T: Clone,
impl<T> ToOwned for Twhere
T: Clone,
type Owned = T
type Owned = T
fn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>ⓘNotable traits for WithDispatch<T>impl<T> Future for WithDispatch<T>where
T: Future, type Output = <T as Future>::Output;
where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>ⓘNotable traits for WithDispatch<T>impl<T> Future for WithDispatch<T>where
T: Future, type Output = <T as Future>::Output;
where
S: Into<Dispatch>,
T: Future, type Output = <T as Future>::Output;
sourcefn with_current_subscriber(self) -> WithDispatch<Self>ⓘNotable traits for WithDispatch<T>impl<T> Future for WithDispatch<T>where
T: Future, type Output = <T as Future>::Output;
fn with_current_subscriber(self) -> WithDispatch<Self>ⓘNotable traits for WithDispatch<T>impl<T> Future for WithDispatch<T>where
T: Future, type Output = <T as Future>::Output;
T: Future, type Output = <T as Future>::Output;
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>ⓘNotable traits for WithDispatch<T>impl<T> Future for WithDispatch<T>where
T: Future, type Output = <T as Future>::Output;
where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>ⓘNotable traits for WithDispatch<T>impl<T> Future for WithDispatch<T>where
T: Future, type Output = <T as Future>::Output;
where
S: Into<Dispatch>,
T: Future, type Output = <T as Future>::Output;
sourcefn with_current_subscriber(self) -> WithDispatch<Self>ⓘNotable traits for WithDispatch<T>impl<T> Future for WithDispatch<T>where
T: Future, type Output = <T as Future>::Output;
fn with_current_subscriber(self) -> WithDispatch<Self>ⓘNotable traits for WithDispatch<T>impl<T> Future for WithDispatch<T>where
T: Future, type Output = <T as Future>::Output;
T: Future, type Output = <T as Future>::Output;