flowistry_ifc_traits/lib.rs
1use std::fmt;
2
3pub trait Secure {}
4pub trait Insecure {}
5
6impl<T: Secure> Secure for &T {}
7
8impl Insecure for fmt::Arguments<'_> {}
9
10pub struct InsecureString(pub String);
11impl Insecure for InsecureString {}
12
13#[macro_export]
14macro_rules! insecure_print {
15 ($($arg:tt),*) => {
16 let s = $crate::InsecureString(format!($($arg),+));
17 println!("{}", s.0);
18 }
19}