c9ac014473
- 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.
53 lines
1.5 KiB
Go
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
|
|
}
|