in gremlin-go/driver/translator.go [274:332]
func (t *translator) toString(arg interface{}) (string, error) {
if arg == nil {
return "null", nil
}
reflectedArg := reflect.TypeOf(arg)
switch reflectedArg.Kind() {
case reflect.Map:
return t.translateMap(arg, false)
case reflect.Slice:
return t.translateSlice(arg)
default:
switch v := arg.(type) {
case withOptions:
{
return groovyWithOptions[v], nil
}
case AnonymousTraversal:
case *AnonymousTraversal:
return t.toString(arg)
case *Binding:
return v.String(), nil
case GraphTraversal:
case *GraphTraversal:
return t.translate(v.Bytecode, false)
case traversalStrategy:
case *traversalStrategy:
return t.translateTraversalStrategy(v)
case *Bytecode:
return t.translate(v, false)
case textP:
case *textP:
return t.translateTextPredicate(v)
case p:
case *p:
return t.translatePredicate(v)
default:
{
switch v := arg.(type) {
case time.Time:
{
return timeToGroovyTime(v), nil
}
case string:
{
return fmt.Sprintf("'%v'", v), nil
}
default:
{
return fmt.Sprintf("%v", v), nil
}
}
}
}
}
return "", nil
}