feat: safemap implementation
This commit is contained in:
55
README.md
55
README.md
@@ -1,2 +1,57 @@
|
||||
# safe-map
|
||||
A thread-safe map implementation for Go with simple API and full concurrency support.
|
||||
|
||||
## Features
|
||||
- ✅ Thread-safe operations
|
||||
- ✅ Generic type support
|
||||
- ✅ Simple and intuitive API
|
||||
- ✅ Full concurrency support
|
||||
- ✅ Lightweight implementation
|
||||
|
||||
## Installation
|
||||
```bash
|
||||
go get git.neurocipta.com/rogerferdinan/safe-map
|
||||
```
|
||||
|
||||
## Usage
|
||||
```go
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"log"
|
||||
safemap "git.neurocipta.com/rogerferdinan/safe-map"
|
||||
)
|
||||
|
||||
func main() {
|
||||
// Create a new SafeMap with string keys and int values
|
||||
m := safemap.NewSafeMap[string, int]()
|
||||
|
||||
// Store data to SafeMap
|
||||
m.Store("abc", 1) // Add
|
||||
m.Store("abc", 2) // Update existing key-value
|
||||
|
||||
// Get length of SafeMap
|
||||
length := m.Len()
|
||||
fmt.Printf("Map length: %d\n", length)
|
||||
|
||||
// Load key-value
|
||||
value, ok := m.Load("abc")
|
||||
if !ok {
|
||||
log.Fatal("abc is not exists")
|
||||
}
|
||||
fmt.Printf("Value for 'abc': %v\n", value)
|
||||
|
||||
// Iterate over all key-value pairs
|
||||
m.Range(func(k string, v int) bool {
|
||||
fmt.Printf("key: %s, value: %v\n", k, v)
|
||||
return true // true = continue the loop, false = break the loop
|
||||
})
|
||||
|
||||
// Delete key-value
|
||||
m.Delete("abc")
|
||||
}
|
||||
```
|
||||
|
||||
## Thread Safety
|
||||
All operations are thread-safe and can be safely called from multiple goroutines simultaneously.
|
||||
Reference in New Issue
Block a user