strimertul/docs/strimertul.go

58 lines
1.2 KiB
Go

package docs
import (
"reflect"
"git.sr.ht/~ashkeel/strimertul/docs/interfaces"
)
// Documentation stuff, keep updated at all times
const (
VersionKey = "strimertul/version"
LogRPCKey = "strimertul/@log"
)
type ExternalLog struct {
// Log level
Level ExternalLogLevel `json:"level"`
// Log message
Message string `json:"message"`
// Additional data as non-nested dictionary
Data map[string]any `json:"data"`
}
type ExternalLogLevel string
const (
ExternalLogLevelDebug ExternalLogLevel = "debug"
ExternalLogLevelInfo ExternalLogLevel = "info"
ExternalLogLevelWarn ExternalLogLevel = "warn"
ExternalLogLevelError ExternalLogLevel = "error"
)
var enums = interfaces.EnumMap{
"ExternalLogLevel": interfaces.Enum{
Values: []any{
ExternalLogLevelDebug,
ExternalLogLevelInfo,
ExternalLogLevelWarn,
ExternalLogLevelError,
},
},
}
var strimertulKeys = interfaces.KeyMap{
VersionKey: interfaces.KeyDef{
Description: "Strimertul version (semantic version, e.g. v3.4.0-alpha.1)",
Type: reflect.TypeOf(""),
},
LogRPCKey: interfaces.KeyDef{
Description: "Add a log entry",
Type: reflect.TypeOf(ExternalLog{}),
Tags: []interfaces.KeyTag{interfaces.TagRPC},
},
}