mirror of
https://github.com/go-gost/core.git
synced 2026-10-20 08:18:14 +00:00
24 lines
901 B
Go
24 lines
901 B
Go
// Package metadata defines a key-value metadata store attached to every
|
|
// component in the GOST framework. Components that carry metadata implement
|
|
// the Metadatable interface.
|
|
package metadata
|
|
|
|
// Metadatable marks a type as carrying Metadata. It is implemented by
|
|
// components like Node and HandleOptions to expose their metadata.
|
|
type Metadatable interface {
|
|
Metadata() Metadata
|
|
}
|
|
|
|
// Metadata is a key-value store for arbitrary configuration or contextual
|
|
// data. It is used throughout GOST to pass settings that don't map to
|
|
// explicit struct fields. Keys are typically string constants defined
|
|
// alongside the parsing code.
|
|
type Metadata interface {
|
|
// IsExists reports whether a key is present.
|
|
IsExists(key string) bool
|
|
// Set stores a value for the given key.
|
|
Set(key string, value any)
|
|
// Get retrieves the value for the given key, or nil if not present.
|
|
Get(key string) any
|
|
}
|