use rust_code_obfuscator::{obfuscate_flow, obfuscate_str, obfuscate_string};
fn takes_str(s: &str) {
println!("[takes_str] {s}");
}
fn greet(user: &str) -> String {
format!("Hello, {}!", user)
}
fn login(user: &str, pass: &str) -> bool {
obfuscate_flow!();
user == obfuscate_string!("admin") && pass == obfuscate_string!("password123")
}
fn main() {
obfuscate_flow!();
let name = obfuscate_string!("Alice");
println!("Name (Display): {name}");
takes_str(&name);
let msg = greet(&name);
println!("Greet: {msg}");
assert_eq!(msg, "Hello, Alice!");
assert!(name == "Alice");
println!("Comparison OK (name == \"Alice\")");
match obfuscate_str!("ADMIN") {
"ADMIN" => println!("Pattern match OK (ADMIN)"),
_ => unreachable!("Unexpected value"),
}
let profile: Option<&str> = Some(obfuscate_str!("release"));
assert_eq!(profile, Some("release"));
println!("Profile: {:?}", profile);
let username = "admin";
let password = "password123";
if login(username, password) {
println!("{}", obfuscate_string!("Access OK!"));
} else {
println!("{}", obfuscate_string!("Access denied..."));
}
let a = obfuscate_str!("cached_literal");
let b = obfuscate_str!("cached_literal");
println!("Cache sanity: a={a}, b={b}");
assert_eq!(a, "cached_literal");
assert_eq!(b, "cached_literal");
println!("All basic_usage_10 checks done");
}