feat(tui): implement status bar with connection and turn state indicators feat(tui): create workflow panel for agent status and progress visualization feat(web): introduce web frontend interface with static file serving feat(ws): add WebSocket interface for real-time communication and session management
25 lines
1.0 KiB
Rust
25 lines
1.0 KiB
Rust
//! PasswordService port — password hashing and verification abstraction.
|
|
//!
|
|
//! Defines the trait that password-hashing adapters (argon2, bcrypt, etc.)
|
|
//! implement. The application layer depends only on this trait, never on
|
|
//! a concrete hashing library.
|
|
|
|
use anyhow::Result;
|
|
use std::future::Future;
|
|
|
|
/// Abstraction for password hashing and verification.
|
|
///
|
|
/// Implementors handle the actual hashing algorithm (argon2, bcrypt, etc.)
|
|
/// and parameter selection. The trait is `Send + Sync` for use in async
|
|
/// service layers.
|
|
pub trait PasswordService: Send + Sync {
|
|
/// Hash a plaintext password and return the encoded hash string
|
|
/// (suitable for storage in a credential store).
|
|
fn hash(&self, password: &str) -> impl Future<Output = Result<String>> + Send;
|
|
|
|
/// Verify a plaintext password against a previously-hashed string.
|
|
///
|
|
/// Returns `true` if the password matches the hash, `false` otherwise.
|
|
fn verify(&self, password: &str, hash: &str) -> impl Future<Output = Result<bool>> + Send;
|
|
}
|