From ebb2dc540858155152b21549afd77e65118e1474 Mon Sep 17 00:00:00 2001 From: Marc Pervaz Boocha Date: Tue, 8 Apr 2025 16:15:27 +0530 Subject: Lint and bug fixes --- examples/basic_usage/main.go | 12 ++++++--- examples/eviction_policy/main.go | 53 +++++++++++++++++++++++++++++++++------- 2 files changed, 53 insertions(+), 12 deletions(-) (limited to 'examples') diff --git a/examples/basic_usage/main.go b/examples/basic_usage/main.go index 73e88ea..5b44cd9 100644 --- a/examples/basic_usage/main.go +++ b/examples/basic_usage/main.go @@ -14,11 +14,16 @@ func main() { fmt.Println("Error:", err) return } - defer db.Close() + + defer func() { + err := db.Close() + if err != nil { + fmt.Println("Error:", err) + } + }() // Set a value with a TTL of 5 seconds - err = db.Set("key1", "value1", 5*time.Second) - if err != nil { + if err = db.Set("key1", "value1", 5*time.Second); err != nil { fmt.Println("Set Error:", err) return } @@ -33,6 +38,7 @@ func main() { // Wait for 6 seconds and try to get the value again time.Sleep(6 * time.Second) + value, ttl, err = db.GetValue("key1") if err != nil { fmt.Println("Get Error after TTL:", err) diff --git a/examples/eviction_policy/main.go b/examples/eviction_policy/main.go index 5b5599a..fa56b8f 100644 --- a/examples/eviction_policy/main.go +++ b/examples/eviction_policy/main.go @@ -2,30 +2,65 @@ package main import ( "fmt" + "os" + "time" "github.com/marcthe12/cache" ) func main() { // Create an in-memory cache with LRU eviction policy - db, err := cache.OpenMem[string, string](cache.WithPolicy(cache.PolicyLRU)) + db, err := cache.OpenMem[string, string]( + cache.WithPolicy(cache.PolicyLRU), + cache.WithMaxCost(30), + cache.SetCleanupTime(1*time.Second), + ) if err != nil { fmt.Println("Error:", err) - return + os.Exit(1) } - defer db.Close() + + defer func() { + err := db.Close() + if err != nil { + fmt.Println("Error:", err) + } + }() // Set values - db.Set("key1", "value1", 0) - db.Set("key2", "value2", 0) - db.Set("key3", "value3", 0) + if err := db.Set("key1", "value1", 0); err != nil { + fmt.Println("Error:", err) + os.Exit(1) + } + + if err := db.Set("key2", "value2", 0); err != nil { + fmt.Println("Error:", err) + os.Exit(1) + } + + if err := db.Set("key3", "value3", 0); err != nil { + fmt.Println("Error:", err) + os.Exit(1) + } // Access some keys - db.GetValue("key1") - db.GetValue("key2") + if _, _, err := db.GetValue("key1"); err != nil { + fmt.Println("Error:", err) + os.Exit(1) + } + + if _, _, err := db.GetValue("key2"); err != nil { + fmt.Println("Error:", err) + os.Exit(1) + } // Add another key to trigger eviction - db.Set("key4", "value4", 0) + if err := db.Set("key4", "value4", 0); err != nil { + fmt.Println("Error:", err) + os.Exit(1) + } + + time.Sleep(2 * time.Second) // Check which keys are present for _, key := range []string{"key1", "key2", "key3", "key4"} { -- cgit v1.2.3-70-g09d2