diff options
author | Wim <wim@42.be> | 2020-01-09 21:52:19 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-01-09 21:52:19 +0100 |
commit | 9d84d6dd643c4017074e81465671cd9b25f9539a (patch) | |
tree | 8a767f91d655a6cf21d476e4fb7aa6fd8a952df8 /vendor/github.com/d5/tengo/stdlib/fmt.go | |
parent | 0f708daf2d14dcca261ef98cc698a1b1f2a6aa74 (diff) | |
download | matterbridge-msglm-9d84d6dd643c4017074e81465671cd9b25f9539a.tar.gz matterbridge-msglm-9d84d6dd643c4017074e81465671cd9b25f9539a.tar.bz2 matterbridge-msglm-9d84d6dd643c4017074e81465671cd9b25f9539a.zip |
Update to tengo v2 (#976)
Diffstat (limited to 'vendor/github.com/d5/tengo/stdlib/fmt.go')
-rw-r--r-- | vendor/github.com/d5/tengo/stdlib/fmt.go | 110 |
1 files changed, 0 insertions, 110 deletions
diff --git a/vendor/github.com/d5/tengo/stdlib/fmt.go b/vendor/github.com/d5/tengo/stdlib/fmt.go deleted file mode 100644 index b8f64278..00000000 --- a/vendor/github.com/d5/tengo/stdlib/fmt.go +++ /dev/null @@ -1,110 +0,0 @@ -package stdlib - -import ( - "fmt" - - "github.com/d5/tengo" - "github.com/d5/tengo/objects" -) - -var fmtModule = map[string]objects.Object{ - "print": &objects.UserFunction{Name: "print", Value: fmtPrint}, - "printf": &objects.UserFunction{Name: "printf", Value: fmtPrintf}, - "println": &objects.UserFunction{Name: "println", Value: fmtPrintln}, - "sprintf": &objects.UserFunction{Name: "sprintf", Value: fmtSprintf}, -} - -func fmtPrint(args ...objects.Object) (ret objects.Object, err error) { - printArgs, err := getPrintArgs(args...) - if err != nil { - return nil, err - } - - _, _ = fmt.Print(printArgs...) - - return nil, nil -} - -func fmtPrintf(args ...objects.Object) (ret objects.Object, err error) { - numArgs := len(args) - if numArgs == 0 { - return nil, objects.ErrWrongNumArguments - } - - format, ok := args[0].(*objects.String) - if !ok { - return nil, objects.ErrInvalidArgumentType{ - Name: "format", - Expected: "string", - Found: args[0].TypeName(), - } - } - if numArgs == 1 { - fmt.Print(format) - return nil, nil - } - - s, err := objects.Format(format.Value, args[1:]...) - if err != nil { - return nil, err - } - - fmt.Print(s) - - return nil, nil -} - -func fmtPrintln(args ...objects.Object) (ret objects.Object, err error) { - printArgs, err := getPrintArgs(args...) - if err != nil { - return nil, err - } - - printArgs = append(printArgs, "\n") - _, _ = fmt.Print(printArgs...) - - return nil, nil -} - -func fmtSprintf(args ...objects.Object) (ret objects.Object, err error) { - numArgs := len(args) - if numArgs == 0 { - return nil, objects.ErrWrongNumArguments - } - - format, ok := args[0].(*objects.String) - if !ok { - return nil, objects.ErrInvalidArgumentType{ - Name: "format", - Expected: "string", - Found: args[0].TypeName(), - } - } - if numArgs == 1 { - return format, nil // okay to return 'format' directly as String is immutable - } - - s, err := objects.Format(format.Value, args[1:]...) - if err != nil { - return nil, err - } - - return &objects.String{Value: s}, nil -} - -func getPrintArgs(args ...objects.Object) ([]interface{}, error) { - var printArgs []interface{} - l := 0 - for _, arg := range args { - s, _ := objects.ToString(arg) - slen := len(s) - if l+slen > tengo.MaxStringLen { // make sure length does not exceed the limit - return nil, objects.ErrStringLimit - } - l += slen - - printArgs = append(printArgs, s) - } - - return printArgs, nil -} |