diff --git a/Cargo.toml b/Cargo.toml index 559d41b..d997b28 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "redact" -version = "0.1.0" +version = "0.1.1-pre0" authors = ["Ethan Brierley "] license = "MIT/Apache-2.0" readme = "README.md" @@ -16,9 +16,12 @@ exclude = [".github"] default = ["std"] # impl std::error::Error for Secret where E: Error std = [] +fake = ["dep:fake", "dep:rand"] [dependencies] serde = { version = "1.0", optional = true, default-features = false } +fake = { version = "2.5", optional = true, default-features = false } +rand = { version = "0.8", optional = true, default-features = false } [dev-dependencies] serde = { version = "1.0", features = ["derive"] } diff --git a/src/lib.rs b/src/lib.rs index 14507ba..de26d78 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -199,3 +199,21 @@ pub fn expose_secret( ) -> Result { secret.expose_secret().serialize(serializer) } + +#[cfg(feature = "fake")] +use fake::Dummy; +#[cfg(feature = "fake")] +use rand::Rng; + +#[cfg(feature = "fake")] +impl, U> Dummy for Secret { + #[inline] + fn dummy_with_rng(config: &U, rng: &mut R) -> Self { + Secret(T::dummy_with_rng(config, rng)) + } + + #[inline] + fn dummy(config: &U) -> Self { + Secret(T::dummy(config)) + } +}