From 74babcec55c315a7eae457a7a276583edae1c7ed Mon Sep 17 00:00:00 2001 From: Eric Coissac Date: Fri, 7 Apr 2023 16:54:57 +0200 Subject: [PATCH] adds the contains function to the language Former-commit-id: 5fb3629b56aa0180c388333e4bfbbd199edf4cf2 --- pkg/obiseq/language.go | 8 ++++++++ 1 file changed, 8 insertions(+) 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