3 个版本

0.1.2 2023年7月17日
0.1.1 2023年7月17日
0.1.0 2023年7月17日

1788Rust 模式

ISC 许可协议

5KB

非敏感

敏感信息标记特质。

示例

这将编译错误

struct Password(SensitiveData<String>);
impl AsRef<str> for Password {
    fn as_ref(&self) -> &str {
        self.0.as_str()
    }
}

fn post_tweet<T: NonSensitive + AsRef<str>, P: AsRef<str>>(msg: T, pwd: P) {
    twitter::post(msg.as_ref(), pwd);
}

fn main() {
    let pwd = Password(SensitiveData::new("wutdedogdoin1!".to_string()));
    let msg = "Hello, world! *Beep boops aggressively*";

    post_tweet(pwd, msg); // Uh oh, we flipped the message and the password!
}

但是 NonSensitive 来拯救我们!
而不是发布我们的推特密码,我们得到了一个错误。
错误信息

the trait bound `sensitive_trait::SensitiveData<String>: sensitive_trait::NonSensitive` is not satisfied in `Password`

lib.rs:

敏感信息标记特质。更多信息请参阅 NonSensitive 结构的文档。

无运行时依赖