#[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]Fixed
Replaces non-empty values with a fixed replacement string.
Fields
This variant is marked as non-exhaustive
#[non_exhaustive]PreserveEdges
Preserves a prefix and suffix for diagnosability.
Fields
This variant is marked as non-exhaustive
#[non_exhaustive]PreserveSuffix
Preserves only the final part of the value.
Fields
This variant is marked as non-exhaustive
Empty
Removes non-empty values entirely.
Implementations§
Source§impl MaskPolicy
impl MaskPolicy
Sourcepub fn preserve_edges(
prefix_chars: usize,
suffix_chars: usize,
replacement: &str,
full_mask_below_or_equal: usize,
) -> Self
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.
Sourcepub fn preserve_suffix(
suffix_chars: usize,
replacement: &str,
full_mask_below_or_equal: usize,
) -> Self
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.
Sourcepub const fn empty() -> Self
pub const fn empty() -> Self
Creates a policy that removes every non-empty value.
§Returns
A mask policy that produces an empty result.
Sourcepub fn mask<'a>(&self, value: &'a str) -> Cow<'a, str>
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.
Sourcepub fn opaque_mask(&self) -> &str
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
impl Clone for MaskPolicy
Source§fn clone(&self) -> MaskPolicy
fn clone(&self) -> MaskPolicy
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more