Struct precis_profiles::UsernameCasePreserved
source · pub struct UsernameCasePreserved(/* private fields */);
Expand description
UsernameCasePreserved
.
Profile designed to deal with usernames
in security and application protocols.
It replaces the SASLprep
profile of Stringprep
. Look at the
IANA
Considerations
section for more details.
§Example
// create UsernameCasePreserved profile
let profile = UsernameCasePreserved::new();
// prepare string
assert_eq!(profile.prepare("Guybrush"), Ok(Cow::from("Guybrush")));
// UsernameCaseMapped does not accept spaces. Unicode code point 0x0020
assert_eq!(profile.prepare("Guybrush Threepwood"),
Err(Error::BadCodepoint(CodepointInfo { cp: 0x0020, position: 8, property: DerivedPropertyValue::SpecClassDis })));
// enforce string
assert_eq!(profile.enforce("Guybrush"), Ok(Cow::from("Guybrush")));
// compare strings
assert_eq!(profile.compare("Guybrush", "Guybrush"), Ok(true));
Implementations§
source§impl UsernameCasePreserved
impl UsernameCasePreserved
sourcepub fn new() -> Self
pub fn new() -> Self
Creates a UsernameCasePreserved
profile.
Trait Implementations§
source§impl Clone for UsernameCasePreserved
impl Clone for UsernameCasePreserved
source§fn clone(&self) -> UsernameCasePreserved
fn clone(&self) -> UsernameCasePreserved
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl Debug for UsernameCasePreserved
impl Debug for UsernameCasePreserved
source§impl Default for UsernameCasePreserved
impl Default for UsernameCasePreserved
source§fn default() -> UsernameCasePreserved
fn default() -> UsernameCasePreserved
Returns the “default value” for a type. Read more
source§impl PartialEq for UsernameCasePreserved
impl PartialEq for UsernameCasePreserved
source§impl PrecisFastInvocation for UsernameCasePreserved
impl PrecisFastInvocation for UsernameCasePreserved
source§fn prepare<'a, S>(s: S) -> Result<Cow<'a, str>, Error>
fn prepare<'a, S>(s: S) -> Result<Cow<'a, str>, Error>
Ensures that the code points in a single input string are allowed
by the underlying PRECIS string class, and sometimes also entails
applying one or more of the rules specified for a particular string
class or profile thereof. Read more
source§fn enforce<'a, S>(s: S) -> Result<Cow<'a, str>, Error>
fn enforce<'a, S>(s: S) -> Result<Cow<'a, str>, Error>
Applies all rules specified for a particular string class,
or profile thereof, to a single input string, for the purpose of
checking whether the string conforms to all the rules and thus
determining if the string can be used in a given protocol slot. Read more
source§impl Profile for UsernameCasePreserved
impl Profile for UsernameCasePreserved
source§fn prepare<'a, S>(&self, s: S) -> Result<Cow<'a, str>, Error>
fn prepare<'a, S>(&self, s: S) -> Result<Cow<'a, str>, Error>
Ensures that the code points in a single input string are allowed
by the underlying PRECIS string class, and sometimes also entails
applying one or more of the rules specified for a particular string
class or profile thereof. Read more
source§fn enforce<'a, S>(&self, s: S) -> Result<Cow<'a, str>, Error>
fn enforce<'a, S>(&self, s: S) -> Result<Cow<'a, str>, Error>
Applies all the rules specified for a particular string class,
or profile thereof, to a single input string, for the purpose of
checking whether the string conforms to all the rules and thus
determining if the string can be used in a given protocol slot. Read more
source§impl Rules for UsernameCasePreserved
impl Rules for UsernameCasePreserved
source§fn width_mapping_rule<'a, T>(&self, s: T) -> Result<Cow<'a, str>, Error>
fn width_mapping_rule<'a, T>(&self, s: T) -> Result<Cow<'a, str>, Error>
Applies the width mapping rule of a profile to an input string. Read more
source§fn normalization_rule<'a, T>(&self, s: T) -> Result<Cow<'a, str>, Error>
fn normalization_rule<'a, T>(&self, s: T) -> Result<Cow<'a, str>, Error>
Applies the normalization rule of a profile to an input string Read more
source§fn directionality_rule<'a, T>(&self, s: T) -> Result<Cow<'a, str>, Error>
fn directionality_rule<'a, T>(&self, s: T) -> Result<Cow<'a, str>, Error>
Applies the directionality rule of a profile to an input string Read more
impl Copy for UsernameCasePreserved
impl Eq for UsernameCasePreserved
impl StructuralPartialEq for UsernameCasePreserved
Auto Trait Implementations§
impl Freeze for UsernameCasePreserved
impl RefUnwindSafe for UsernameCasePreserved
impl Send for UsernameCasePreserved
impl Sync for UsernameCasePreserved
impl Unpin for UsernameCasePreserved
impl UnwindSafe for UsernameCasePreserved
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
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)source§impl<T> CloneToUninit for Twhere
T: Copy,
impl<T> CloneToUninit for Twhere
T: Copy,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)