Files
nabarr/nabarr.go
l3uddz ce3807b819 initial code (#6)
* initial code commit
2021-02-14 16:18:26 +00:00

49 lines
875 B
Go

package nabarr
import (
"github.com/antonmedv/expr/vm"
"github.com/l3uddz/nabarr/media"
"time"
)
type ExprProgram struct {
expression string
Program *vm.Program
}
func (p *ExprProgram) String() string {
return p.expression
}
func NewExprProgram(expression string, vm *vm.Program) *ExprProgram {
return &ExprProgram{
expression: expression,
Program: vm,
}
}
type ExprEnv struct {
media.Item
Now func() time.Time
}
func NewExprEnv(media *media.Item) *ExprEnv {
return &ExprEnv{
Item: *media,
Now: func() time.Time { return time.Now().UTC() },
}
}
func StringOrDefault(currentValue *string, defaultValue string) string {
if currentValue == nil {
return defaultValue
}
return *currentValue
}
func Uint64OrDefault(currentValue *uint64, defaultValue uint64) uint64 {
if currentValue == nil {
return defaultValue
}
return *currentValue
}