Struct tonic::transport::Endpoint [−][src]
Channel builder.
This struct is used to build and configure HTTP/2 channels.
Implementations
impl Endpoint
[src][−]
pub fn from_static(s: &'static str) -> Self
[src][−]
Convert an Endpoint
from a static string.
Endpoint::from_static("https://example.com");
pub fn from_shared(s: impl Into<Bytes>) -> Result<Self, InvalidUri>
[src][−]
Convert an Endpoint
from shared bytes.
Endpoint::from_shared("https://example.com".to_string());
pub fn timeout(self, dur: Duration) -> Self
[src][−]
Apply a timeout to each request.
builder.timeout(Duration::from_secs(5));
pub fn tcp_keepalive(self, tcp_keepalive: Option<Duration>) -> Self
[src][−]
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
)
pub fn concurrency_limit(self, limit: usize) -> Self
[src][−]
Apply a concurrency limit to each request.
builder.concurrency_limit(256);
pub fn rate_limit(self, limit: u64, duration: Duration) -> Self
[src][−]
Apply a rate limit to each request.
builder.rate_limit(32, Duration::from_secs(1));
pub fn initial_stream_window_size(self, sz: impl Into<Option<u32>>) -> Self
[src][−]
Sets the SETTINGS_INITIAL_WINDOW_SIZE
option for HTTP2
stream-level flow control.
Default is 65,535
pub fn initial_connection_window_size(self, sz: impl Into<Option<u32>>) -> Self
[src][−]
Sets the max connection-level flow control for HTTP2
Default is 65,535
pub fn tls_config(self, tls_config: ClientTlsConfig) -> Result<Self, Error>
[src][−]
Configures TLS for the endpoint.
pub fn tcp_nodelay(self, enabled: bool) -> Self
[src][−]
Set the value of TCP_NODELAY
option for accepted connections. Enabled by default.
pub fn http2_keep_alive_interval(self, interval: Duration) -> Self
[src][−]
Set http2 KEEP_ALIVE_INTERVAL. Uses hyper
’s default otherwise.
pub fn keep_alive_timeout(self, duration: Duration) -> Self
[src][−]
Set http2 KEEP_ALIVE_TIMEOUT. Uses hyper
’s default otherwise.
pub fn keep_alive_while_idle(self, enabled: bool) -> Self
[src][−]
Set http2 KEEP_ALIVE_WHILE_IDLE. Uses hyper
’s default otherwise.
pub async fn connect(&self) -> Result<Channel, Error>
[src][−]
Create a channel from this config.
pub fn connect_lazy(&self) -> Result<Channel, Error>
[src][−]
Create a channel from this config.
The channel returned by this method does not attempt to connect to the endpoint until first use.
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,
[src][−]
&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.
pub fn uri(&self) -> &Uri
[src][−]
Get the endpoint uri.
let endpoint = Endpoint::from_static("https://example.com"); assert_eq!(endpoint.uri(), &Uri::from_static("https://example.com"));
Trait Implementations
impl Clone for Endpoint
[src][+]
impl Debug for Endpoint
[src][+]
impl From<Uri> for Endpoint
[src][+]
impl TryFrom<&'static str> for Endpoint
[src][+]
impl TryFrom<Bytes> for Endpoint
[src][+]
impl TryFrom<String> for Endpoint
[src][+]
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> Any for T where
T: 'static + ?Sized,
[src][+]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src][+]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src][+]
T: ?Sized,
impl<T> From<T> for T
[src][+]
impl<T> Instrument for T
[src][+]
impl<T> Instrument for T
[src][+]
impl<T, U> Into<U> for T where
U: From<T>,
[src][+]
U: From<T>,
impl<T> Pointable for T
[src][+]
impl<T> ToOwned for T where
T: Clone,
[src][+]
T: Clone,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src][+]
U: Into<T>,
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src][+]
U: TryFrom<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
[src][+]
V: MultiLane<T>,