refactor(masking): use empty enums as masking:Strategy<T> types (#2874)

This commit is contained in:
nain-F49FF806
2023-11-28 08:53:53 +01:00
committed by GitHub
parent 54d6b1083f
commit 0e66b1b5dc
4 changed files with 12 additions and 12 deletions

View File

@ -72,7 +72,7 @@ impl<'de> Deserialize<'de> for CardNumber {
}
}
pub struct CardNumberStrategy;
pub enum CardNumberStrategy {}
impl<T> Strategy<T> for CardNumberStrategy
where

View File

@ -27,7 +27,7 @@ pub type SecretSerdeValue = Secret<serde_json::Value>;
/// Strategy for masking a PhoneNumber
#[derive(Debug)]
pub struct PhoneNumberStrategy;
pub enum PhoneNumberStrategy {}
/// Phone Number
#[derive(Debug, serde::Deserialize, serde::Serialize)]
@ -144,7 +144,7 @@ where
/// Strategy for Encryption
#[derive(Debug)]
pub struct EncryptionStratergy;
pub enum EncryptionStratergy {}
impl<T> Strategy<T> for EncryptionStratergy
where
@ -157,7 +157,7 @@ where
/// Client secret
#[derive(Debug)]
pub struct ClientSecret;
pub enum ClientSecret {}
impl<T> Strategy<T> for ClientSecret
where
@ -189,7 +189,7 @@ where
/// Strategy for masking Email
#[derive(Debug)]
pub struct EmailStrategy;
pub enum EmailStrategy {}
impl<T> Strategy<T> for EmailStrategy
where
@ -305,7 +305,7 @@ impl FromStr for Email {
/// IP address
#[derive(Debug)]
pub struct IpAddress;
pub enum IpAddress {}
impl<T> Strategy<T> for IpAddress
where
@ -332,7 +332,7 @@ where
/// Strategy for masking UPI VPA's
#[derive(Debug)]
pub struct UpiVpaMaskingStrategy;
pub enum UpiVpaMaskingStrategy {}
impl<T> Strategy<T> for UpiVpaMaskingStrategy
where

View File

@ -12,8 +12,8 @@ use crate::{strategy::Strategy, PeekInterface};
/// To get access to value use method `expose()` of trait [`crate::ExposeInterface`].
///
/// ## Masking
/// Use the [`crate::strategy::Strategy`] trait to implement a masking strategy on a unit struct
/// and pass the unit struct as a second generic parameter to [`Secret`] while defining it.
/// Use the [`crate::strategy::Strategy`] trait to implement a masking strategy on a zero-variant
/// enum and pass this enum as a second generic parameter to [`Secret`] while defining it.
/// [`Secret`] will take care of applying the masking strategy on the inner secret when being
/// displayed.
///
@ -24,7 +24,7 @@ use crate::{strategy::Strategy, PeekInterface};
/// use masking::Secret;
/// use std::fmt;
///
/// struct MyStrategy;
/// enum MyStrategy {}
///
/// impl<T> Strategy<T> for MyStrategy
/// where

View File

@ -7,7 +7,7 @@ pub trait Strategy<T> {
}
/// Debug with type
pub struct WithType;
pub enum WithType {}
impl<T> Strategy<T> for WithType {
fn fmt(_: &T, fmt: &mut fmt::Formatter<'_>) -> fmt::Result {
@ -18,7 +18,7 @@ impl<T> Strategy<T> for WithType {
}
/// Debug without type
pub struct WithoutType;
pub enum WithoutType {}
impl<T> Strategy<T> for WithoutType {
fn fmt(_: &T, fmt: &mut fmt::Formatter<'_>) -> fmt::Result {