mirror of
https://github.com/EchoVault/SugarDB.git
synced 2025-10-13 03:34:07 +08:00
52 lines
742 B
Go
52 lines
742 B
Go
package main
|
|
|
|
import (
|
|
"bytes"
|
|
"io"
|
|
"sync"
|
|
)
|
|
|
|
type CustomWriter struct {
|
|
Buf bytes.Buffer
|
|
}
|
|
|
|
func (cw *CustomWriter) Write(p []byte) (int, error) {
|
|
count := 0
|
|
|
|
for _, b := range p {
|
|
cw.Buf.WriteByte(b)
|
|
count += 1
|
|
}
|
|
|
|
if count != len(p) {
|
|
return count, io.ErrShortWrite
|
|
}
|
|
|
|
return count, nil
|
|
}
|
|
|
|
type MockData struct {
|
|
Mu sync.Mutex
|
|
Data map[string]interface{}
|
|
}
|
|
|
|
type MockServer struct {
|
|
Data MockData
|
|
}
|
|
|
|
func (server *MockServer) Lock() {
|
|
server.Data.Mu.Lock()
|
|
}
|
|
|
|
func (server *MockServer) Unlock() {
|
|
server.Data.Mu.Unlock()
|
|
}
|
|
|
|
func (server *MockServer) GetData(key string) interface{} {
|
|
return server.Data.Data[key]
|
|
}
|
|
|
|
func (server *MockServer) SetData(key string, value interface{}) {
|
|
server.Data.Data[key] = value
|
|
}
|