aboutsummaryrefslogtreecommitdiff
path: root/object/store/memory
diff options
context:
space:
mode:
authorGravatar Runxi Yu2026-06-13 03:32:21 +0000
committerGravatar Runxi Yu2026-06-13 04:59:51 +0000
commitbe63ecd9711b46135bbff1769c2e4c3642255ef1 (patch)
treed5581c8b2e438af2b8ae82dd8f200393b2dbc5d3 /object/store/memory
parentTODO: Update (diff)
Unify lengths
Diffstat (limited to 'object/store/memory')
-rw-r--r--object/store/memory/reader.go12
-rw-r--r--object/store/memory/writer.go18
-rw-r--r--object/store/memory/writer_test.go8
3 files changed, 16 insertions, 22 deletions
diff --git a/object/store/memory/reader.go b/object/store/memory/reader.go
index bcde0a78..6b8fae55 100644
--- a/object/store/memory/reader.go
+++ b/object/store/memory/reader.go
@@ -17,7 +17,7 @@ func (memory *Memory) ReadBytesFull(id id.ObjectID) ([]byte, error) {
return nil, store.ErrObjectNotFound
}
- raw := header.Append(nil, obj.ty, uint64(len(obj.content)))
+ raw := header.Append(nil, obj.ty, len(obj.content))
raw = append(raw, obj.content...)
return raw, nil
@@ -34,17 +34,17 @@ func (memory *Memory) ReadBytesContent(id id.ObjectID) (typ.Type, []byte, error)
}
// ReadHeader reads one object header.
-func (memory *Memory) ReadHeader(id id.ObjectID) (typ.Type, uint64, error) {
+func (memory *Memory) ReadHeader(id id.ObjectID) (typ.Type, int, error) {
obj, ok := memory.objects.Load(id)
if !ok {
return typ.Unknown, 0, store.ErrObjectNotFound
}
- return obj.ty, uint64(len(obj.content)), nil
+ return obj.ty, len(obj.content), nil
}
// ReadSize reads one object size.
-func (memory *Memory) ReadSize(id id.ObjectID) (uint64, error) {
+func (memory *Memory) ReadSize(id id.ObjectID) (int, error) {
_, size, err := memory.ReadHeader(id)
if err != nil {
return 0, err
@@ -64,13 +64,13 @@ func (memory *Memory) ReadReaderFull(id id.ObjectID) (io.ReadCloser, error) {
}
// ReadReaderContent reads one object body through a reader.
-func (memory *Memory) ReadReaderContent(id id.ObjectID) (typ.Type, uint64, io.ReadCloser, error) {
+func (memory *Memory) ReadReaderContent(id id.ObjectID) (typ.Type, int, io.ReadCloser, error) {
ty, content, err := memory.ReadBytesContent(id)
if err != nil {
return typ.Unknown, 0, nil, err
}
- return ty, uint64(len(content)), io.NopCloser(bytes.NewReader(content)), nil
+ return ty, len(content), io.NopCloser(bytes.NewReader(content)), nil
}
// Refresh is a no-op for in-memory object stores.
diff --git a/object/store/memory/writer.go b/object/store/memory/writer.go
index 185b082b..d76a1f41 100644
--- a/object/store/memory/writer.go
+++ b/object/store/memory/writer.go
@@ -8,12 +8,11 @@ import (
"lindenii.org/go/furgit/object/id"
"lindenii.org/go/furgit/object/store"
"lindenii.org/go/furgit/object/typ"
- "lindenii.org/go/lgo/intconv"
)
// WriteBytesContent writes one typed object content byte slice.
func (memory *Memory) WriteBytesContent(ty typ.Type, content []byte) (id.ObjectID, error) {
- raw := header.Append(nil, ty, uint64(len(content)))
+ raw := header.Append(nil, ty, len(content))
raw = append(raw, content...)
objectID := memory.objectFormat.Sum(raw)
@@ -30,7 +29,7 @@ func (memory *Memory) WriteBytesFull(raw []byte) (id.ObjectID, error) {
}
content := raw[consumed:]
- if uint64(len(content)) != size {
+ if len(content) != size {
return id.ObjectID{}, fmt.Errorf("%w: header size/content mismatch", store.ErrInvalidObject)
}
@@ -38,21 +37,16 @@ func (memory *Memory) WriteBytesFull(raw []byte) (id.ObjectID, error) {
}
// WriteReaderContent writes one typed object content stream.
-func (memory *Memory) WriteReaderContent(ty typ.Type, size uint64, src io.Reader) (id.ObjectID, error) {
- limit, err := intconv.Uint64ToInt64(size)
- if err != nil {
- return id.ObjectID{}, fmt.Errorf("object/store/memory: content size: %w", err)
- }
-
- content, err := io.ReadAll(io.LimitReader(src, limit+1))
+func (memory *Memory) WriteReaderContent(ty typ.Type, size int, src io.Reader) (id.ObjectID, error) {
+ content, err := io.ReadAll(io.LimitReader(src, int64(size)+1))
if err != nil {
return id.ObjectID{}, fmt.Errorf("object/store/memory: read content: %w", err)
}
switch {
- case uint64(len(content)) > size:
+ case len(content) > size:
return id.ObjectID{}, fmt.Errorf("%w: content longer than declared size", store.ErrInvalidObject)
- case uint64(len(content)) < size:
+ case len(content) < size:
return id.ObjectID{}, fmt.Errorf("%w: content shorter than declared size", store.ErrInvalidObject)
}
diff --git a/object/store/memory/writer_test.go b/object/store/memory/writer_test.go
index 18223642..ad0d8722 100644
--- a/object/store/memory/writer_test.go
+++ b/object/store/memory/writer_test.go
@@ -19,9 +19,9 @@ func TestWriteReaderContent(t *testing.T) {
store := memory.New(objectFormat)
content := []byte("memory-content\n")
- raw := append(header.Append(nil, typ.Blob, uint64(len(content))), content...)
+ raw := append(header.Append(nil, typ.Blob, len(content)), content...)
- gotID, err := store.WriteReaderContent(typ.Blob, uint64(len(content)), bytes.NewReader(content))
+ gotID, err := store.WriteReaderContent(typ.Blob, len(content), bytes.NewReader(content))
if err != nil {
t.Fatalf("WriteReaderContent: %v", err)
}
@@ -56,7 +56,7 @@ func TestWriteReaderFull(t *testing.T) {
store := memory.New(objectFormat)
content := []byte("memory-full\n")
- raw := append(header.Append(nil, typ.Blob, uint64(len(content))), content...)
+ raw := append(header.Append(nil, typ.Blob, len(content)), content...)
gotID, err := store.WriteReaderFull(bytes.NewReader(raw))
if err != nil {
@@ -89,7 +89,7 @@ func TestWriteBytes(t *testing.T) {
store := memory.New(objectFormat)
content := []byte("memory-bytes\n")
- raw := append(header.Append(nil, typ.Blob, uint64(len(content))), content...)
+ raw := append(header.Append(nil, typ.Blob, len(content)), content...)
gotID, err := store.WriteBytesContent(typ.Blob, content)
if err != nil {