use alvan_lic::{LicenseGenerator, LicenseValidator};
fn main() {
let secret_key = "your-super-secret-key-change-this-in-production";
let generator = LicenseGenerator::new(secret_key);
println!("Generating licenses...\n");
let license_1h = generator.generate_key(1).unwrap();
println!("1 hour license: {}", license_1h);
let license_24h = generator.generate_key(24).unwrap();
println!("24 hour license: {}", license_24h);
let license_30d = generator.generate_key(720).unwrap();
println!("30 day license: {}", license_30d);
let license_1y = generator.generate_key(8760).unwrap();
println!("1 year license: {}", license_1y);
let validator = LicenseValidator::new(secret_key);
println!("\nValidating licenses...\n");
match validator.validate_key(&license_24h) {
Ok(info) => {
println!("License validation successful!");
println!(" Valid: {}", info.is_valid);
println!(" Issued at: {}", info.issued_at);
println!(" Expires at: {}", info.expires_at);
println!(" Hours remaining: {:.2}", info.hours_remaining);
}
Err(e) => {
println!("License validation failed: {}", e);
}
}
println!("\nTrying validation with wrong secret key...");
let wrong_validator = LicenseValidator::new("wrong-secret-key");
match wrong_validator.validate_key(&license_24h) {
Ok(_) => println!("This shouldn't happen!"),
Err(e) => println!("Expected error: {}", e),
}
println!("\nTrying validation with invalid license...");
match validator.validate_key("invalid-license-key") {
Ok(_) => println!("This shouldn't happen!"),
Err(e) => println!("Expected error: {}", e),
}
}