pub enum SaslMechanism {
Plain,
ScramSha256,
ScramSha512,
OAuthBearer,
Gssapi,
}Variants§
Plain
ScramSha256
ScramSha512
OAuthBearer
SASL/OAUTHBEARER (KIP-255 / RFC 7628). The broker’s configured token validator validates the bearer token.
Gssapi
SASL/GSSAPI (Kerberos, RFC 4752). The GSS provider drives context establishment and the RFC 4752 security-layer negotiation from the broker’s configured service keytab.
The variant exists in every build, because metadata records persist it.
The provider needs the gssapi Cargo feature; see
SaslMechanism::is_available.
Implementations§
Source§impl SaslMechanism
impl SaslMechanism
pub fn wire_name(self) -> &'static str
pub fn from_wire(s: &str) -> Option<Self>
Sourcepub fn is_scram(self) -> bool
pub fn is_scram(self) -> bool
true for the SCRAM mechanisms, SHA-256 and SHA-512.
The handshake and authenticate code uses this where it treats both the same way at the dispatch level.
Sourcepub const fn is_available(self) -> bool
pub const fn is_available(self) -> bool
true when this build can run the mechanism.
GSSAPI needs the gssapi Cargo feature on a native target. Every other
mechanism is always available.
Sourcepub fn available() -> impl Iterator<Item = Self>
pub fn available() -> impl Iterator<Item = Self>
The mechanisms this build can run, in declaration order.
Sourcepub const fn require_available(self) -> Result<Self, AuthError>
pub const fn require_available(self) -> Result<Self, AuthError>
Returns self when this build can run the mechanism.
§Errors
AuthError::UnsupportedMechanism when SaslMechanism::is_available
is false. A broker answers that with Kafka’s
UNSUPPORTED_SASL_MECHANISM (error code 33), as it does for a mechanism
the listener has not enabled.
Trait Implementations§
Source§impl Clone for SaslMechanism
impl Clone for SaslMechanism
Source§fn clone(&self) -> SaslMechanism
fn clone(&self) -> SaslMechanism
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for SaslMechanism
Source§impl Debug for SaslMechanism
impl Debug for SaslMechanism
Source§impl<'de> Deserialize<'de> for SaslMechanism
impl<'de> Deserialize<'de> for SaslMechanism
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for SaslMechanism
Source§impl<'_derivative_strum> From<&'_derivative_strum SaslMechanism> for &'static str
impl<'_derivative_strum> From<&'_derivative_strum SaslMechanism> for &'static str
Source§fn from(x: &'_derivative_strum SaslMechanism) -> &'static str
fn from(x: &'_derivative_strum SaslMechanism) -> &'static str
Source§impl From<SaslMechanism> for &'static str
impl From<SaslMechanism> for &'static str
Source§fn from(x: SaslMechanism) -> &'static str
fn from(x: SaslMechanism) -> &'static str
Source§impl FromStr for SaslMechanism
impl FromStr for SaslMechanism
Source§impl Hash for SaslMechanism
impl Hash for SaslMechanism
Source§impl PartialEq for SaslMechanism
impl PartialEq for SaslMechanism
Source§fn eq(&self, other: &SaslMechanism) -> bool
fn eq(&self, other: &SaslMechanism) -> bool
self and other values to be equal, and is used by ==.Source§impl Serialize for SaslMechanism
impl Serialize for SaslMechanism
impl StructuralPartialEq for SaslMechanism
Auto Trait Implementations§
impl Freeze for SaslMechanism
impl RefUnwindSafe for SaslMechanism
impl Send for SaslMechanism
impl Sync for SaslMechanism
impl Unpin for SaslMechanism
impl UnsafeUnpin for SaslMechanism
impl UnwindSafe for SaslMechanism
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> Paint for Twhere
T: ?Sized,
impl<T> Paint for Twhere
T: ?Sized,
Source§fn fg(&self, value: Color) -> Painted<&T>
fn fg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the foreground set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like red() and
green(), which have the same functionality but are
pithier.
§Example
Set foreground color to white using fg():
use yansi::{Paint, Color};
painted.fg(Color::White);Set foreground color to white using white().
use yansi::Paint;
painted.white();Source§fn bright_black(&self) -> Painted<&T>
fn bright_black(&self) -> Painted<&T>
Source§fn bright_red(&self) -> Painted<&T>
fn bright_red(&self) -> Painted<&T>
Source§fn bright_green(&self) -> Painted<&T>
fn bright_green(&self) -> Painted<&T>
Source§fn bright_yellow(&self) -> Painted<&T>
fn bright_yellow(&self) -> Painted<&T>
Source§fn bright_blue(&self) -> Painted<&T>
fn bright_blue(&self) -> Painted<&T>
Source§fn bright_magenta(&self) -> Painted<&T>
fn bright_magenta(&self) -> Painted<&T>
Source§fn bright_cyan(&self) -> Painted<&T>
fn bright_cyan(&self) -> Painted<&T>
Source§fn bright_white(&self) -> Painted<&T>
fn bright_white(&self) -> Painted<&T>
Source§fn bg(&self, value: Color) -> Painted<&T>
fn bg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the background set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like on_red() and
on_green(), which have the same functionality but
are pithier.
§Example
Set background color to red using fg():
use yansi::{Paint, Color};
painted.bg(Color::Red);Set background color to red using on_red().
use yansi::Paint;
painted.on_red();Source§fn on_primary(&self) -> Painted<&T>
fn on_primary(&self) -> Painted<&T>
Source§fn on_magenta(&self) -> Painted<&T>
fn on_magenta(&self) -> Painted<&T>
Source§fn on_bright_black(&self) -> Painted<&T>
fn on_bright_black(&self) -> Painted<&T>
Source§fn on_bright_red(&self) -> Painted<&T>
fn on_bright_red(&self) -> Painted<&T>
Source§fn on_bright_green(&self) -> Painted<&T>
fn on_bright_green(&self) -> Painted<&T>
Source§fn on_bright_yellow(&self) -> Painted<&T>
fn on_bright_yellow(&self) -> Painted<&T>
Source§fn on_bright_blue(&self) -> Painted<&T>
fn on_bright_blue(&self) -> Painted<&T>
Source§fn on_bright_magenta(&self) -> Painted<&T>
fn on_bright_magenta(&self) -> Painted<&T>
Source§fn on_bright_cyan(&self) -> Painted<&T>
fn on_bright_cyan(&self) -> Painted<&T>
Source§fn on_bright_white(&self) -> Painted<&T>
fn on_bright_white(&self) -> Painted<&T>
Source§fn attr(&self, value: Attribute) -> Painted<&T>
fn attr(&self, value: Attribute) -> Painted<&T>
Enables the styling Attribute value.
This method should be used rarely. Instead, prefer to use
attribute-specific builder methods like bold() and
underline(), which have the same functionality
but are pithier.
§Example
Make text bold using attr():
use yansi::{Paint, Attribute};
painted.attr(Attribute::Bold);Make text bold using using bold().
use yansi::Paint;
painted.bold();Source§fn rapid_blink(&self) -> Painted<&T>
fn rapid_blink(&self) -> Painted<&T>
Source§fn quirk(&self, value: Quirk) -> Painted<&T>
fn quirk(&self, value: Quirk) -> Painted<&T>
Enables the yansi Quirk value.
This method should be used rarely. Instead, prefer to use quirk-specific
builder methods like mask() and
wrap(), which have the same functionality but are
pithier.
§Example
Enable wrapping using .quirk():
use yansi::{Paint, Quirk};
painted.quirk(Quirk::Wrap);Enable wrapping using wrap().
use yansi::Paint;
painted.wrap();Source§fn clear(&self) -> Painted<&T>
👎Deprecated since 1.0.1: renamed to resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.
fn clear(&self) -> Painted<&T>
renamed to resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.
Source§fn whenever(&self, value: Condition) -> Painted<&T>
fn whenever(&self, value: Condition) -> Painted<&T>
Conditionally enable styling based on whether the Condition value
applies. Replaces any previous condition.
See the crate level docs for more details.
§Example
Enable styling painted only when both stdout and stderr are TTYs:
use yansi::{Paint, Condition};
painted.red().on_yellow().whenever(Condition::STDOUTERR_ARE_TTY);