pub struct RawPassword(/* private fields */);
Expand description
This crate provides functionality to parse and validate raw passwords with different levels of strength.
§Example
use custom_type::RawPassword;
let weak_password = RawPassword::parse_weak("weakpass").unwrap();
println!("Weak Password: {}", weak_password);
let medium_password = RawPassword::parse_medium("Medium123").unwrap();
println!("Medium Password: {}", medium_password);
let strict_password = RawPassword::parse_strict("Strong1!23").unwrap();
println!("Strong Password: {}", strict_password);
parse_weak
: Parses a password and ensures it is at least 8 characters long.parse_medium
: Parses a password and ensures it is at least 8 characters long, contains both letters and digits.parse_strict
: Parses a password and ensures it is at least 8 characters long, contains uppercase, lowercase, digits, and special characters.
Each method returns a Result<RawPassword, TypeError>
where TypeError
indicates a parsing error if the password does not meet the criteria.
§Features
- Parse and validate passwords with different strength levels (weak, medium, strict).
- Custom error type
TypeError
for handling invalid passwords.
§RawPassword : Parse impl ToString
Into a Valid Password
Provides methods to parse and validate passwords with different strength criteria.
Implementations§
Source§impl RawPassword
impl RawPassword
Sourcepub fn parse_weak(password: impl ToString) -> Result<Self, TypeError>
pub fn parse_weak(password: impl ToString) -> Result<Self, TypeError>
Parses a given string into a weak password.
A weak password must be at least 8 characters long.
§Arguments
password
- A string slice that holds the password to be parsed.
§Returns
Ok(Self)
if the password meets the weak criteria.Err(TypeError::ParseError)
if the password is invalid.
§Examples
use custom_type::RawPassword;
let password = RawPassword::parse_weak("validpass");
assert!(password.is_ok());
let invalid_password = RawPassword::parse_weak("short");
assert!(invalid_password.is_err());
Sourcepub fn parse_medium(password: impl ToString) -> Result<Self, TypeError>
pub fn parse_medium(password: impl ToString) -> Result<Self, TypeError>
Parses a given string into a medium password.
A medium password must be at least 8 characters long and contain both letters and digits.
§Arguments
password
- A string slice that holds the password to be parsed.
§Returns
Ok(Self)
if the password meets the medium criteria.Err(TypeError::ParseError)
if the password is invalid.
§Examples
use custom_type::RawPassword;
let password = RawPassword::parse_medium("valid123");
assert!(password.is_ok());
let invalid_password = RawPassword::parse_medium("noDigits");
assert!(invalid_password.is_err());
Sourcepub fn parse_strict(password: impl ToString) -> Result<Self, TypeError>
pub fn parse_strict(password: impl ToString) -> Result<Self, TypeError>
Parses a given string into a strict password.
A strict password must be at least 8 characters long and contain uppercase, lowercase, digits, and special characters.
§Arguments
password
- A string slice that holds the password to be parsed.
§Returns
Ok(Self)
if the password meets the strict criteria.Err(TypeError::ParseError)
if the password is invalid.
§Examples
use custom_type::RawPassword;
let password = RawPassword::parse_strict("Valid123!");
assert!(password.is_ok());
let invalid_password = RawPassword::parse_strict("NoDigits!");
assert!(invalid_password.is_err());
Trait Implementations§
Source§impl Debug for RawPassword
impl Debug for RawPassword
Source§impl<'de> Deserialize<'de> for RawPassword
impl<'de> Deserialize<'de> for RawPassword
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>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl Display for RawPassword
impl Display for RawPassword
Source§impl PartialEq for RawPassword
impl PartialEq for RawPassword
Source§impl Serialize for RawPassword
impl Serialize for RawPassword
impl StructuralPartialEq for RawPassword
Auto Trait Implementations§
impl Freeze for RawPassword
impl RefUnwindSafe for RawPassword
impl Send for RawPassword
impl Sync for RawPassword
impl Unpin for RawPassword
impl UnwindSafe for RawPassword
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
Mutably borrows from an owned value. Read more