diff --git a/pkg/obiseq/language.go b/pkg/obiseq/language.go index 0f3f61c..b0abaf6 100644 --- a/pkg/obiseq/language.go +++ b/pkg/obiseq/language.go @@ -3,6 +3,7 @@ package obiseq import ( "fmt" "log" + "reflect" "strings" "git.metabarcoding.org/lecasofts/go/obitools/pkg/obiutils" @@ -139,6 +140,13 @@ var OBILang = gval.NewLanguage( length := obiutils.Len(args[0]) return (float64)(length), nil }), + gval.Function("contains", func(args ...interface{}) (interface{}, error) { + if obiutils.IsAMap(args[0]) { + val := reflect.ValueOf(args[0]).MapIndex(reflect.ValueOf(args[1])) + return val.IsValid(), nil + } + return false, nil + }), gval.Function("ismap", func(args ...interface{}) (interface{}, error) { ismap := obiutils.IsAMap(args[0]) return ismap, nil