pub struct ScriptManager { /* private fields */ }Expand description
Script manager for caching and managing multiple scripts
Implementations§
Source§impl ScriptManager
 
impl ScriptManager
Sourcepub async fn register(&self, name: impl Into<String>, script: Script)
 
pub async fn register(&self, name: impl Into<String>, script: Script)
Register a script with the manager
§Examples
use redis_oxide::{Script, ScriptManager};
let mut manager = ScriptManager::new();
let script = Script::new("return 'Hello'");
manager.register("greeting", script).await;Sourcepub async fn get(&self, name: &str) -> Option<Script>
 
pub async fn get(&self, name: &str) -> Option<Script>
Get a script by name
§Examples
let manager = ScriptManager::new();
let script = Script::new("return 'Hello'");
manager.register("greeting", script).await;
if let Some(script) = manager.get("greeting").await {
    println!("Found script with SHA: {}", script.sha());
}Sourcepub async fn execute<T>(
    &self,
    name: &str,
    client: &Client,
    keys: Vec<String>,
    args: Vec<String>,
) -> RedisResult<T>
 
pub async fn execute<T>( &self, name: &str, client: &Client, keys: Vec<String>, args: Vec<String>, ) -> RedisResult<T>
Execute a script by name
§Examples
let manager = ScriptManager::new();
let script = Script::new("return KEYS[1]");
manager.register("get_key", script).await;
let result: String = manager.execute(
    "get_key",
    &client,
    vec!["mykey".to_string()],
    vec![]
).await?;Sourcepub async fn load_all(
    &self,
    client: &Client,
) -> RedisResult<HashMap<String, String>>
 
pub async fn load_all( &self, client: &Client, ) -> RedisResult<HashMap<String, String>>
Load all registered scripts into Redis cache
§Examples
let manager = ScriptManager::new();
// Register some scripts
manager.register("script1", Script::new("return 1")).await;
manager.register("script2", Script::new("return 2")).await;
// Load all scripts at once
let results = manager.load_all(&client).await?;
println!("Loaded {} scripts", results.len());Sourcepub async fn list_scripts(&self) -> Vec<String>
 
pub async fn list_scripts(&self) -> Vec<String>
List all registered script names
Trait Implementations§
Source§impl Debug for ScriptManager
 
impl Debug for ScriptManager
Auto Trait Implementations§
impl Freeze for ScriptManager
impl !RefUnwindSafe for ScriptManager
impl Send for ScriptManager
impl Sync for ScriptManager
impl Unpin for ScriptManager
impl !UnwindSafe for ScriptManager
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
 
impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
 
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more