secret-vault-value 0.2.4

Library provides a simple implementation of a secure and serializable type of any kind of secrets
Documentation
use crate::*;
use zeroize::*;

use bytes::BytesMut;

impl From<BytesMut> for SecretValue {
    fn from(mut bytes: BytesMut) -> SecretValue {
        let result = SecretValue::new(bytes.to_vec());
        bytes.zeroize();
        bytes.truncate(0);
        result
    }
}

#[cfg(test)]
mod tests {
    use super::*;
    use proptest::prelude::*;

    proptest! {
         #[test]
         fn serialize_as_string(mock_secret in "[a-zA-Z0-9]*") {
             let mock_secret_bytes = bytes::BytesMut::from(mock_secret.as_str());
             let secret_value = SecretValue::from(mock_secret_bytes);

             assert_eq!(mock_secret.as_str(), secret_value.sensitive_value_to_str().unwrap())
         }
    }
}