use falkordb::{FalkorClientBuilder, FalkorResult};
fn main() -> FalkorResult<()> {
let client = FalkorClientBuilder::new()
.with_connection_info("falkor://127.0.0.1:6379".try_into()?)
.build()?;
let script = r#"
#!js api_version=1.0 name=mylib
redis.registerFunction('add', function(a, b) {
return a + b;
});
redis.registerFunction('multiply', function(a, b) {
return a * b;
});
"#;
println!("Loading UDF library...");
client.udf_load("mylib", script, false)?;
println!("\nListing all UDF libraries:");
let list_result = client.udf_list(None, false)?;
println!("UDF list: {:?}", list_result);
println!("\nListing 'mylib' with code:");
let list_with_code = client.udf_list(Some("mylib"), true)?;
println!("UDF details: {:?}", list_with_code);
let updated_script = r#"
#!js api_version=1.0 name=mylib
redis.registerFunction('add', function(a, b) {
return a + b;
});
redis.registerFunction('multiply', function(a, b) {
return a * b;
});
redis.registerFunction('subtract', function(a, b) {
return a - b;
});
"#;
println!("\nReplacing UDF library with updated version...");
client.udf_load("mylib", updated_script, true)?;
println!("\nDeleting UDF library...");
client.udf_delete("mylib")?;
let list_after_delete = client.udf_list(None, false)?;
println!("UDF list after delete: {:?}", list_after_delete);
println!("\nUDF operations completed successfully!");
Ok(())
}