| 418 | } |
| 419 | |
| 420 | func genRange(n types.Int, maxSize int64) (ref.Val, error) { |
| 421 | if n < 0 { |
| 422 | return nil, fmt.Errorf("lists.range: size must be non-negative, got %d", n) |
| 423 | } |
| 424 | if maxSize > 0 && int64(n) > maxSize { |
| 425 | return nil, fmt.Errorf("lists.range: size %d exceeds maximum allowed (%d)", n, maxSize) |
| 426 | } |
| 427 | newList := make([]ref.Val, 0, n) |
| 428 | for i := types.Int(0); i < n; i++ { |
| 429 | newList = append(newList, i) |
| 430 | } |
| 431 | return types.DefaultTypeAdapter.NativeToValue(newList), nil |
| 432 | } |
| 433 | |
| 434 | func reverseList(list traits.Lister) (ref.Val, error) { |
| 435 | var newList []ref.Val |