Compare commits
8 commits
| Author | SHA1 | Date | |
|---|---|---|---|
| fb791d8b18 | |||
| 4f1a18463d | |||
| 6dc48772c0 | |||
| d9f6417ca5 | |||
| d36db3937f | |||
| 15b1e6d1fd | |||
| cfe2116fd4 | |||
| 88a779a320 |
4 changed files with 60 additions and 2 deletions
|
|
@ -1,5 +1,9 @@
|
||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
### [0.5.0] - 2025-04-21 - 🚀 Stable release!
|
## [0.5.2] - 2025-04-31 - ✅ Add testable examples
|
||||||
|
|
||||||
|
## [0.5.1] - 2025-04-31 - 📄 Add LICENSE
|
||||||
|
|
||||||
|
## [0.5.0] - 2025-04-21 - 🚀 Stable release!
|
||||||
|
|
||||||
Everything works.
|
Everything works.
|
||||||
|
|
|
||||||
21
LICENSE
Normal file
21
LICENSE
Normal file
|
|
@ -0,0 +1,21 @@
|
||||||
|
The MIT License (MIT)
|
||||||
|
|
||||||
|
Copyright (c) 2025, Dan Jones <danjones@goodevilgenius.org>.
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in
|
||||||
|
all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
THE SOFTWARE.
|
||||||
31
example_test.go
Normal file
31
example_test.go
Normal file
|
|
@ -0,0 +1,31 @@
|
||||||
|
//nolint:perfsprint // Not that concerned about microoptimizations for test code
|
||||||
|
package ezcache_test
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"codeberg.org/danjones000/ezcache"
|
||||||
|
)
|
||||||
|
|
||||||
|
func Example() {
|
||||||
|
// Create a five minute cache.
|
||||||
|
cache, _ := ezcache.New(func(id uint8) (string, error) {
|
||||||
|
fmt.Println("Fetching new value for", id)
|
||||||
|
return fmt.Sprintf("%d", id), nil
|
||||||
|
}, 5*time.Minute)
|
||||||
|
|
||||||
|
val, _ := cache.Get(5)
|
||||||
|
fmt.Println("Got value", val)
|
||||||
|
val, _ = cache.Get(5)
|
||||||
|
fmt.Println("Got value", val)
|
||||||
|
val, _ = cache.Get(4)
|
||||||
|
fmt.Println("Got value", val)
|
||||||
|
|
||||||
|
// Output:
|
||||||
|
// Fetching new value for 5
|
||||||
|
// Got value 5
|
||||||
|
// Got value 5
|
||||||
|
// Fetching new value for 4
|
||||||
|
// Got value 4
|
||||||
|
}
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
//nolint:perfsprint // Not that concerned about microoptimizations for test code
|
||||||
package ezcache_test
|
package ezcache_test
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
|
@ -69,7 +70,7 @@ func TestGetExpire(t *testing.T) {
|
||||||
assert.True(t, hit)
|
assert.True(t, hit)
|
||||||
|
|
||||||
hit = false
|
hit = false
|
||||||
time.Sleep(2)
|
time.Sleep(2 * time.Nanosecond)
|
||||||
val, err = cache.Get(4)
|
val, err = cache.Get(4)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Equal(t, "4", val)
|
assert.Equal(t, "4", val)
|
||||||
|
|
@ -77,6 +78,7 @@ func TestGetExpire(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestGetError(t *testing.T) {
|
func TestGetError(t *testing.T) {
|
||||||
|
//nolint:err113 // It's just a test for an error.
|
||||||
cache, _ := ezcache.New(func(k uint8) (byte, error) { return 0, fmt.Errorf("Nope for %d", k) }, 1)
|
cache, _ := ezcache.New(func(k uint8) (byte, error) { return 0, fmt.Errorf("Nope for %d", k) }, 1)
|
||||||
|
|
||||||
_, err := cache.Get(4)
|
_, err := cache.Get(4)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue