Struct NoProxy

pub struct NoProxy { /* private fields */ }

A configuration for filtering out requests that shouldn't be proxied

Implementations

impl NoProxy

fn from_env() -> Option<NoProxy>

Returns a new no-proxy configuration based on environment variables (or None if no variables are set) see [self::NoProxy::from_string()] for the string format

fn from_string(no_proxy_list: &str) -> Option<Self>

Returns a new no-proxy configuration based on a no_proxy string (or None if no variables are set) The rules are as follows:

  • The environment variable NO_PROXY is checked, if it is not set, no_proxy is checked
  • If neither environment variable is set, None is returned
  • Entries are expected to be comma-separated (whitespace between entries is ignored)
  • IP addresses (both IPv4 and IPv6) are allowed, as are optional subnet masks (by adding /size, for example "192.168.1.0/24").
  • An entry "*" matches all hostnames (this is the only wildcard allowed)
  • Any other entry is considered a domain name (and may contain a leading dot, for example google.com and .google.com are equivalent) and would match both that domain AND all subdomains.

For example, if "NO_PROXY=google.com, 192.168.1.0/24" was set, all the following would match (and therefore would bypass the proxy):

  • http://google.com/
  • http://www.google.com/
  • http://192.168.1.42/

The URL http://notgoogle.com/ would not match.

Trait Implementations

impl Clone for NoProxy

fn clone(&self) -> NoProxy

impl Debug for NoProxy

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

impl Default for NoProxy

fn default() -> NoProxy

Auto Trait Implementations

impl Freeze for NoProxy

impl RefUnwindSafe for NoProxy

impl Send for NoProxy

impl Sync for NoProxy

impl Unpin for NoProxy

impl UnsafeUnpin for NoProxy

impl UnwindSafe for NoProxy

Blanket Implementations

impl<T> Any for NoProxy where T: 'static + ?Sized,

fn type_id(&self) -> TypeId

impl<T> Borrow<T> for NoProxy where T: ?Sized,

fn borrow(&self) -> &T

impl<T> BorrowMut<T> for NoProxy where T: ?Sized,

fn borrow_mut(&mut self) -> &mut T

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

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

impl<T> From<T> for NoProxy

fn from(t: T) -> T

Returns the argument unchanged.

impl<T> Instrument for NoProxy

impl<T> PolicyExt for NoProxy where T: ?Sized,

fn and<P, B, E>(self, other: P) -> And<T, P>
where
    T: Sized + Policy<B, E>,
    P: Policy<B, E>,
fn or<P, B, E>(self, other: P) -> Or<T, P>
where
    T: Sized + Policy<B, E>,
    P: Policy<B, E>,

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

type Owned = T;
fn to_owned(&self) -> T
fn clone_into(&self, target: &mut T)

impl<T> WithSubscriber for NoProxy

impl<T, U> Into<U> for NoProxy where U: From<T>,

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of [From]<T> for U chooses to do.

impl<T, U> TryFrom<U> for NoProxy where U: Into<T>,

type Error = never;
fn try_from(value: U) -> Result<T, never>

impl<T, U> TryInto<U> for NoProxy where U: TryFrom<T>,

type Error = <U as TryFrom<T>>::Error;
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>