feat(blogo,metadata): wrapper of map[string]any to implement Metadata interface
This commit is contained in:
@@ -30,3 +30,29 @@ type Metadata interface {
|
|||||||
Delete(key string, strict ...bool) error
|
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
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user