Files
photocli/internal/manifest/memory.go
T
Ein Anderssono c9ac014473
pipeline / test (push) Has been cancelled
pipeline / build (push) Has been cancelled
v0.10.0: ports and adapters refactor
- Extract shared manifest types into internal/manifest/types leaf package.
- Extract SQLite adapter into internal/manifest/sqlite.
- Extract JSONL adapter into internal/manifest/jsonl.
- Isolate modernc.org/sqlite import to sqlite/adapter.go.
- Add adapter-backed registry with manifest.Default.
- Adapter-agnostic ConvertManifest in types/.
- MemoryAdapter for in-memory manifest testing.
- CLI uses manifest.Default registry directly.
- SQLite LogWriter type assertion moved into SQLiteAdapter.
- Manifest interface includes Entries(); EntryReader removed.
- No behavior changes. 100% coverage across all 6 packages.
2026-06-15 08:27:38 +02:00

53 lines
1.5 KiB
Go

package manifest
import "gitea.k3s.k0.nu/tools/photocli/internal/manifest/types"
type memoryStore struct {
entries map[string]types.Entry
}
func newMemoryStore() *memoryStore {
return &memoryStore{entries: make(map[string]types.Entry)}
}
func (m *memoryStore) Has(id string) bool {
_, ok := m.entries[id]
return ok
}
func (m *memoryStore) Add(id string, filename string, size int64, cloud string) {
m.AddEntry(types.NewEntry(id, filename, filename, size, cloud))
}
func (m *memoryStore) AddEntry(entry types.Entry) {
if entry.Path == "" {
entry.Path = entry.Filename
}
m.entries[entry.ID] = entry
}
func (m *memoryStore) Save() error { return nil }
func (m *memoryStore) Close() { _ = m }
func (m *memoryStore) OpenAppend() error { return nil }
func (m *memoryStore) Entries() map[string]types.Entry {
out := make(map[string]types.Entry, len(m.entries))
for k, v := range m.entries {
out[k] = v
}
return out
}
type MemoryAdapter struct{}
func (MemoryAdapter) Format() types.Format { return types.FormatJSONL }
func (MemoryAdapter) Aliases() []string { return nil }
func (MemoryAdapter) Path(string) string { return "" }
func (MemoryAdapter) Exists(string) bool { return false }
func (MemoryAdapter) Open(string) (types.Manifest, error) { return newMemoryStore(), nil }
func (MemoryAdapter) OpenLogWriter(types.Manifest, string) (types.LogWriter, error) {
return types.NoopLogWriter, nil
}