feat(blogo,metadata): wrapper of map[string]any to implement Metadata interface

This commit is contained in:
Guz
2025-01-14 17:34:38 -03:00
parent d9d6ba0aef
commit 0b7dc81b99

View File

@@ -30,3 +30,29 @@ type Metadata interface {
Delete(key string, strict ...bool) error
}
type MetadataMap map[string]any
func (m MetadataMap) Get(key string) (any, error) {
v, ok := m[key]
if !ok {
return nil, ErrMetadataNotFound
}
return v, nil
}
func (m MetadataMap) Set(key string, v any, strict ...bool) error {
if _, ok := m[key]; ok && len(strict) > 0 && strict[0] {
return ErrMetadataNotEmpty
}
m[key] = v
return nil
}
func (m MetadataMap) Delete(key string, strict ...bool) error {
if _, ok := m[key]; ok && len(strict) > 0 && strict[0] {
return ErrMetadataNotEmpty
}
delete(m, key)
return nil
}