(args ...vector.Any)
| 138 | } |
| 139 | |
| 140 | func (r *Replace) Call(args ...vector.Any) vector.Any { |
| 141 | if vec, ok := expr.CheckForNullThenError(args); ok { |
| 142 | return vec |
| 143 | } |
| 144 | args = underAll(args) |
| 145 | for _, arg := range args { |
| 146 | if arg.Type() != super.TypeString { |
| 147 | return vector.NewWrappedError(r.sctx, "replace: string arg required", arg) |
| 148 | } |
| 149 | } |
| 150 | sVal := args[0] |
| 151 | out := vector.NewStringEmpty(0) |
| 152 | for i := range sVal.Len() { |
| 153 | s := vector.StringValue(sVal, i) |
| 154 | old := vector.StringValue(args[1], i) |
| 155 | new := vector.StringValue(args[2], i) |
| 156 | out.Append(strings.ReplaceAll(s, old, new)) |
| 157 | } |
| 158 | return out |
| 159 | } |
| 160 | |
| 161 | type Split struct { |
| 162 | sctx *super.Context |
nothing calls this directly
no test coverage detected