# Struct openssl::ssl::SslMode [−] [src]

    pub struct SslMode { /* fields omitted */ }

Options controlling the behavior of an `SslContext`.

## Implementations

### `impl SslMode` [src]

#### `pub const ENABLE_PARTIAL_WRITE: SslMode` [src]

Enables “short writes”.

Normally, a write in OpenSSL will always write out all of the requested data, even if it requires more than one TLS record or write to the underlying stream. This option will cause a write to return after writing a single TLS record instead.

#### `pub const ACCEPT_MOVING_WRITE_BUFFER: SslMode` [src]

Disables a check that the data buffer has not moved between calls when operating in a nonblocking context.

#### `pub const AUTO_RETRY: SslMode` [src]

Enables automatic retries after TLS session events such as renegotiations or heartbeats.

By default, OpenSSL will return a `WantRead` error after a renegotiation or heartbeat. This option will cause OpenSSL to automatically continue processing the requested operation instead.

Note that `SslStream::read` and `SslStream::write` will automatically retry regardless of the state of this option. It only affects `SslStream::ssl_read` and `SslStream::ssl_write`.

#### `pub const NO_AUTO_CHAIN: SslMode` [src]

Disables automatic chain building when verifying a peer’s certificate.

TLS peers are responsible for sending the entire certificate chain from the leaf to a trusted root, but some will incorrectly not do so. OpenSSL will try to build the chain out of certificates it knows of, and this option will disable that behavior.

#### `pub const RELEASE_BUFFERS: SslMode` [src]

Release memory buffers when the session does not need them.

This saves ~34 KiB of memory for idle streams.

#### `pub const SEND_FALLBACK_SCSV: SslMode` [src]

Sends the fake `TLS_FALLBACK_SCSV` cipher suite in the ClientHello message of a handshake.

This should only be enabled if a client has failed to connect to a server which attempted to downgrade the protocol version of the session.

Do not use this unless you know what you’re doing!

#### `pub const fn empty() -> SslMode` [src]

Returns an empty set of flags

#### `pub const fn all() -> SslMode` [src]

Returns the set containing all flags.

#### `pub const fn bits(&self) -> c_long` [src]

Returns the raw value of the flags currently stored.

#### `pub fn from_bits(bits: c_long) -> Option<SslMode>` [src]

Convert from underlying bit representation, unless that representation contains bits that do not correspond to a flag.

#### `pub const fn from_bits_truncate(bits: c_long) -> SslMode` [src]

Convert from underlying bit representation, dropping any bits that do not correspond to flags.

#### `pub const unsafe fn from_bits_unchecked(bits: c_long) -> SslMode` [src]

Convert from underlying bit representation, preserving all bits (even those not corresponding to a defined flag).

#### `pub const fn is_empty(&self) -> bool` [src]

Returns `true` if no flags are currently stored.

#### `pub const fn is_all(&self) -> bool` [src]

Returns `true` if all flags are currently set.

#### `pub const fn intersects(&self, other: SslMode) -> bool` [src]

Returns `true` if there are flags common to both `self` and `other`.

#### `pub const fn contains(&self, other: SslMode) -> bool` [src]

Returns `true` all of the flags in `other` are contained within `self`.

#### `pub fn insert(&mut self, other: SslMode)` [src]

Inserts the specified flags in-place.

#### `pub fn remove(&mut self, other: SslMode)` [src]

Removes the specified flags in-place.

#### `pub fn toggle(&mut self, other: SslMode)` [src]

Toggles the specified flags in-place.

#### `pub fn set(&mut self, other: SslMode, value: bool)` [src]

Inserts or removes the specified flags depending on the passed value.

## Trait Implementations

### `impl Binary for SslMode` [src]

#### `fn fmt(&self, f: &mut Formatter<'_>) -> Result` [src]

Formats the value using the given formatter.

### `impl BitAnd<SslMode> for SslMode` [src]

#### `type Output = SslMode`

The resulting type after applying the `&` operator.

#### `fn bitand(self, other: SslMode) -> SslMode` [src]

Returns the intersection between the two sets of flags.

### `impl BitAndAssign<SslMode> for SslMode` [src]

#### `fn bitand_assign(&mut self, other: SslMode)` [src]

Disables all flags disabled in the set.

### `impl BitOr<SslMode> for SslMode` [src]

#### `type Output = SslMode`

The resulting type after applying the `|` operator.

#### `fn bitor(self, other: SslMode) -> SslMode` [src]

Returns the union of the two sets of flags.

### `impl BitOrAssign<SslMode> for SslMode` [src]

#### `fn bitor_assign(&mut self, other: SslMode)` [src]

Adds the set of flags.

### `impl BitXor<SslMode> for SslMode` [src]

#### `type Output = SslMode`

The resulting type after applying the `^` operator.

#### `fn bitxor(self, other: SslMode) -> SslMode` [src]

Returns the left flags, but with all the right flags toggled.

### `impl BitXorAssign<SslMode> for SslMode` [src]

#### `fn bitxor_assign(&mut self, other: SslMode)` [src]

Toggles the set of flags.

### `impl Clone for SslMode` [src]

#### `fn clone(&self) -> SslMode` [src]

Returns a copy of the value. Read more

#### `pub fn clone_from(&mut self, source: &Self)`1.0.0 [src]

Performs copy-assignment from `source`. Read more

### `impl Copy for SslMode` [src]

### `impl Debug for SslMode` [src]

#### `fn fmt(&self, f: &mut Formatter<'_>) -> Result` [src]

Formats the value using the given formatter. Read more

### `impl Eq for SslMode` [src]

### `impl Extend<SslMode> for SslMode` [src]

#### `fn extend<T: IntoIterator<Item = SslMode>>(&mut self, iterator: T)` [src]

Extends a collection with the contents of an iterator. Read more

#### `pub fn extend_one(&mut self, item: A)` [src]

🔬 This is a nightly-only experimental API. (`extend_one`)

Extends a collection with exactly one element.

#### `pub fn extend_reserve(&mut self, additional: usize)` [src]

🔬 This is a nightly-only experimental API. (`extend_one`)

Reserves capacity in a collection for the given number of additional elements. Read more

### `impl FromIterator<SslMode> for SslMode` [src]

#### `fn from_iter<T: IntoIterator<Item = SslMode>>(iterator: T) -> SslMode` [src]

Creates a value from an iterator. Read more

### `impl Hash for SslMode` [src]

#### `fn hash<__H: Hasher>(&self, state: &mut __H)` [src]

Feeds this value into the given `Hasher`. Read more

#### `pub fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher,` 1.3.0 [src]

Feeds a slice of this type into the given `Hasher`. Read more

### `impl LowerHex for SslMode` [src]

#### `fn fmt(&self, f: &mut Formatter<'_>) -> Result` [src]

Formats the value using the given formatter.

### `impl Not for SslMode` [src]

#### `type Output = SslMode`

The resulting type after applying the `!` operator.

#### `fn not(self) -> SslMode` [src]

Returns the complement of this set of flags.

### `impl Octal for SslMode` [src]

#### `fn fmt(&self, f: &mut Formatter<'_>) -> Result` [src]

Formats the value using the given formatter.

### `impl Ord for SslMode` [src]

#### `fn cmp(&self, other: &SslMode) -> Ordering` [src]

This method returns an `Ordering` between `self` and `other`. Read more

#### `#[must_use]pub fn max(self, other: Self) -> Self` 1.21.0 [src]

Compares and returns the maximum of two values. Read more

#### `#[must_use]pub fn min(self, other: Self) -> Self` 1.21.0 [src]

Compares and returns the minimum of two values. Read more

#### `#[must_use]pub fn clamp(self, min: Self, max: Self) -> Self` 1.50.0 [src]

Restrict a value to a certain interval. Read more

### `impl PartialEq<SslMode> for SslMode` [src]

#### `fn eq(&self, other: &SslMode) -> bool` [src]

This method tests for `self` and `other` values to be equal, and is used by `==`. Read more

#### `fn ne(&self, other: &SslMode) -> bool` [src]

This method tests for `!=`.

### `impl PartialOrd<SslMode> for SslMode` [src]

#### `fn partial_cmp(&self, other: &SslMode) -> Option<Ordering>` [src]

This method returns an ordering between `self` and `other` values if one exists. Read more

#### `#[must_use]pub fn lt(&self, other: &Rhs) -> bool` 1.0.0 [src]

This method tests less than (for `self` and `other`) and is used by the `<` operator. Read more

#### `#[must_use]pub fn le(&self, other: &Rhs) -> bool` 1.0.0 [src]

This method tests less than or equal to (for `self` and `other`) and is used by the `<=` operator. Read more

#### `#[must_use]pub fn gt(&self, other: &Rhs) -> bool` 1.0.0 [src]

This method tests greater than (for `self` and `other`) and is used by the `>` operator. Read more

#### `#[must_use]pub fn ge(&self, other: &Rhs) -> bool` 1.0.0 [src]

This method tests greater than or equal to (for `self` and `other`) and is used by the `>=` operator. Read more

### `impl StructuralEq for SslMode` [src]

### `impl StructuralPartialEq for SslMode` [src]

### `impl Sub<SslMode> for SslMode` [src]

#### `type Output = SslMode`

The resulting type after applying the `-` operator.

#### `fn sub(self, other: SslMode) -> SslMode` [src]

Returns the set difference of the two sets of flags.

### `impl SubAssign<SslMode> for SslMode` [src]

#### `fn sub_assign(&mut self, other: SslMode)` [src]

Disables all flags enabled in the set.

### `impl UpperHex for SslMode` [src]

#### `fn fmt(&self, f: &mut Formatter<'_>) -> Result` [src]

Formats the value using the given formatter.

## Auto Trait Implementations

### `impl RefUnwindSafe for SslMode`

### `impl Send for SslMode`

### `impl Sync for SslMode`

### `impl Unpin for SslMode`

### `impl UnwindSafe for SslMode`

## Blanket Implementations

### `impl<T> Any for T where
T: 'static + ?Sized,` [src]

#### `pub fn type_id(&self) -> TypeId` [src]

Gets the `TypeId` of `self`. Read more

### `impl<T> Borrow<T> for T where
T: ?Sized,` [src]

#### `pub fn borrow(&self) -> &T` [src]

Immutably borrows from an owned value. Read more

### `impl<T> BorrowMut<T> for T where
T: ?Sized,` [src]

#### `pub fn borrow_mut(&mut self) -> &mut T` [src]

Mutably borrows from an owned value. Read more

### `impl<T> From<T> for T` [src]

#### `pub fn from(t: T) -> T` [src]

Performs the conversion.

### `impl<T, U> Into<U> for T where
U: From<T>,` [src]

#### `pub fn into(self) -> U` [src]

Performs the conversion.

### `impl<T> ToOwned for T where
T: Clone,` [src]

#### `type Owned = T`

The resulting type after obtaining ownership.

#### `pub fn to_owned(&self) -> T` [src]

Creates owned data from borrowed data, usually by cloning. Read more

#### `pub fn clone_into(&self, target: &mut T)` [src]

🔬 This is a nightly-only experimental API. (`toowned_clone_into`)

recently added

Uses borrowed data to replace owned data, usually by cloning. Read more

### `impl<T, U> TryFrom<U> for T where
U: Into<T>,` [src]

#### `type Error = Infallible`

The type returned in the event of a conversion error.

#### `pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>` [src]

Performs the conversion.

### `impl<T, U> TryInto<U> for T where
U: TryFrom<T>,` [src]

#### `type Error = <U as TryFrom<T>>::Error`

The type returned in the event of a conversion error.

#### `pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>` [src]

Performs the conversion.