Skip to main content

MaskPolicy

Enum MaskPolicy 

Source
#[non_exhaustive]
pub enum MaskPolicy {
#[non_exhaustive]
Fixed { replacement: String, },
#[non_exhaustive]
PreserveEdges { prefix_chars: usize, suffix_chars: usize, replacement: String, full_mask_below_or_equal: usize, },
#[non_exhaustive]
PreserveSuffix { suffix_chars: usize, replacement: String, full_mask_below_or_equal: usize, }, Empty, }
Expand description

Strategy used to mask one sensitive field value.

Variants (Non-exhaustive)§

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

#[non_exhaustive]
Fixed

Replaces non-empty values with a fixed replacement string.

Fields

This variant is marked as non-exhaustive
Non-exhaustive enum variants could have additional fields added in future. Therefore, non-exhaustive enum variants cannot be constructed in external crates and cannot be matched against.
§replacement: String

Replacement used for non-empty values.

§

#[non_exhaustive]
PreserveEdges

Preserves a prefix and suffix for diagnosability.

Fields

This variant is marked as non-exhaustive
Non-exhaustive enum variants could have additional fields added in future. Therefore, non-exhaustive enum variants cannot be constructed in external crates and cannot be matched against.
§prefix_chars: usize

Number of leading Unicode scalar values to retain.

§suffix_chars: usize

Number of trailing Unicode scalar values to retain.

§replacement: String

Replacement inserted between retained edges.

§full_mask_below_or_equal: usize

Values at or below this character length are fully masked.

§

#[non_exhaustive]
PreserveSuffix

Preserves only the final part of the value.

Fields

This variant is marked as non-exhaustive
Non-exhaustive enum variants could have additional fields added in future. Therefore, non-exhaustive enum variants cannot be constructed in external crates and cannot be matched against.
§suffix_chars: usize

Number of trailing Unicode scalar values to retain.

§replacement: String

Replacement inserted before the retained suffix.

§full_mask_below_or_equal: usize

Values at or below this character length are fully masked.

§

Empty

Removes non-empty values entirely.

Implementations§

Source§

impl MaskPolicy

Source

pub fn fixed(replacement: &str) -> Self

Creates a fixed-replacement policy.

§Parameters
  • replacement - Text returned for every non-empty value.
§Returns

A fixed-replacement mask policy.

Source

pub fn preserve_edges( prefix_chars: usize, suffix_chars: usize, replacement: &str, full_mask_below_or_equal: usize, ) -> Self

Creates a policy that retains prefix_chars and suffix_chars scalars.

Values no longer than full_mask_below_or_equal, or too short to keep both requested edges without overlap, are replaced completely.

§Parameters
  • prefix_chars - Number of leading Unicode scalars to retain.
  • suffix_chars - Number of trailing Unicode scalars to retain.
  • replacement - Text inserted between retained edges.
  • full_mask_below_or_equal - Scalar-count threshold for full masking.
§Returns

An edge-preserving mask policy.

Source

pub fn preserve_suffix( suffix_chars: usize, replacement: &str, full_mask_below_or_equal: usize, ) -> Self

Creates a policy that retains suffix_chars trailing Unicode scalars.

Values no longer than full_mask_below_or_equal, or no longer than the requested suffix, are replaced completely.

§Parameters
  • suffix_chars - Number of trailing Unicode scalars to retain.
  • replacement - Text inserted before the retained suffix.
  • full_mask_below_or_equal - Scalar-count threshold for full masking.
§Returns

A suffix-preserving mask policy.

Source

pub const fn empty() -> Self

Creates a policy that removes every non-empty value.

§Returns

A mask policy that produces an empty result.

Source

pub fn mask<'a>(&self, value: &'a str) -> Cow<'a, str>

Masks value according to this policy.

Empty values remain borrowed and empty. Non-empty values return an owned mask, with edge counts measured in Unicode scalar values.

§Type Parameters
  • 'a - Lifetime of the input and any borrowed result.
§Parameters
  • value - Value to mask.
§Returns

The borrowed empty input or an owned masked value.

Source

pub fn opaque_mask(&self) -> &str

Returns the complete replacement for a value whose contents are opaque.

Edge-preserving policies cannot safely retain any part of an opaque value, so this method returns only their configured replacement.

§Returns

The complete configured replacement, or an empty string for Self::Empty.

Trait Implementations§

Source§

impl Clone for MaskPolicy

Source§

fn clone(&self) -> MaskPolicy

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for MaskPolicy

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Eq for MaskPolicy

Source§

impl PartialEq for MaskPolicy

Source§

fn eq(&self, other: &MaskPolicy) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for MaskPolicy

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.