pub struct UsersFile {
pub users: HashMap<String, UserEntry>,
/* private fields */
}Expand description
A parsed users file mapping usernames to their authentication credentials.
Pre-builds internal lookup indices during construction so that key and fingerprint lookups are O(1) rather than linear scans.
The TOML file has the following format:
[users.alice]
authorized_keys = ["base64-encoded-x25519-pubkey"]
authorized_certs = ["sha256:hex-fingerprint"]
[users.bob]
authorized_keys = ["base64-encoded-pq-pubkey"]Fields§
§users: HashMap<String, UserEntry>Map of username to their authentication entry.
Implementations§
Source§impl UsersFile
impl UsersFile
Sourcepub fn find_user_by_noise_pubkey(&self, pubkey: &PublicKey) -> Option<&str>
pub fn find_user_by_noise_pubkey(&self, pubkey: &PublicKey) -> Option<&str>
Sourcepub fn find_user_by_noise_pq_pubkey(
&self,
pq_pubkey: &PqPublicKey,
) -> Option<&str>
pub fn find_user_by_noise_pq_pubkey( &self, pq_pubkey: &PqPublicKey, ) -> Option<&str>
Sourcepub fn find_user_by_cert_fingerprint(&self, fingerprint: &str) -> Option<&str>
pub fn find_user_by_cert_fingerprint(&self, fingerprint: &str) -> Option<&str>
Sourcepub fn collect_noise_public_keys(&self) -> HashSet<PublicKey>
pub fn collect_noise_public_keys(&self) -> HashSet<PublicKey>
Collects all authorized X25519 public keys from all users.
Keys that fail to decode (wrong length, invalid base64) are silently skipped.
§Returns
A set of all valid X25519 public keys across all users.
Sourcepub fn collect_noise_pq_public_keys(&self) -> HashSet<PqPublicKey>
pub fn collect_noise_pq_public_keys(&self) -> HashSet<PqPublicKey>
Collects all authorized hybrid PQ public keys from all users.
§Returns
A set of all valid PQ public keys across all users.
Sourcepub fn collect_cert_fingerprints(&self) -> HashSet<String>
pub fn collect_cert_fingerprints(&self) -> HashSet<String>
Collects all authorized certificate fingerprints from all users.
§Returns
A set of all certificate fingerprints (in sha256:<hex> format) across all users.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for UsersFile
impl RefUnwindSafe for UsersFile
impl Send for UsersFile
impl Sync for UsersFile
impl Unpin for UsersFile
impl UnsafeUnpin for UsersFile
impl UnwindSafe for UsersFile
Blanket Implementations§
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,
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);