(args ...vector.Any)
| 14 | } |
| 15 | |
| 16 | func (a *Abs) Call(args ...vector.Any) vector.Any { |
| 17 | if vec, ok := expr.CheckForNullThenError(args); ok { |
| 18 | return vec |
| 19 | } |
| 20 | vec := vector.Under(args[0]) |
| 21 | switch id := vec.Type().ID(); { |
| 22 | case super.IsUnsigned(id): |
| 23 | return vec |
| 24 | case super.IsSigned(id) || super.IsFloat(id): |
| 25 | return a.abs(vec) |
| 26 | } |
| 27 | return vector.NewWrappedError(a.sctx, "abs: not a number", vec) |
| 28 | } |
| 29 | |
| 30 | func (a *Abs) abs(vec vector.Any) vector.Any { |
| 31 | switch vec := vec.(type) { |
nothing calls this directly
no test coverage detected